当前位置: 首页 > 知识库问答 >
问题:

在teradata上创建存储过程

平羽
2023-03-14

在Teradata16上创建存储过程时sql出错,请问这个查询有什么问题?

替换过程tutorial_db.banks(out test Varchar(20))BEGIN select name from tutorial_db.banks end;

共有1个答案

江洲
2023-03-14

Teradata的SP基于标准SQL,要返回结果集,必须定义一个游标

REPLACE PROCEDURE tutorial_db.banks(OUT test VARCHAR(20)) 
DYNAMIC RESULT SETS 1 -- add 1 for each result set to be returned
BEGIN  
   -- dummy cursor declaration
   DECLARE cur2 CURSOR WITH RETURN ONLY FOR      
   SELECT NAME FROM tutorial_db.banks;

   -- don't close within the SP
   OPEN cur2;
END; 

游标通常是坏的,但这与返回仅游标不是逐行处理在SP中,它只是一个答案集。

 类似资料:
  • MySQL 存储过程是一些 SQL 语句的集合,比如有时候我们可能需要一大串的 SQL 语句,或者说在编写 SQL 语句的过程中需要设置一些变量的值,这个时候我们就完全有必要编写一个存储过程。 编写存储过程并不是件简单的事情,但是使用存储过程可以简化操作,且减少冗余的操作步骤,同时,还可以减少操作过程中的失误,提高效率,因此应该尽可能的学会使用存储过程。 下面主要介绍如何创建存储过程。 可以使用

  • 问题内容: 有没有办法在Teradata存储过程中引发错误? 例如,我要检查表是否为空。如果表为空,则希望使存储过程出错,并显示错误消息“表为空”。 这将使我能够将错误提示给调用应用程序。 问题答案: TD13 +实现了标准SQL的SIGNAL / RESIGNAL 。

  • 问题内容: 我想检查是否存在存储过程列表。我希望所有这些都在1个脚本中一个接一个地完成。到目前为止,我有这种格式: 等等。但是,出现以下错误: 关键字“过程”附近的语法不正确。 为什么我的工作不正常? 问题答案: 必须是批处理中的第一个语句。我通常会这样: (不要忘记授予声明,因为如果您重新创建proc,它们将会丢失) 部署存储过程时要考虑的另一件事是,删除可以成功而创建失败。出现问题时,我总是使

  • 我最近从使用预填充的DB切换到允许Hibernate创建我的表。当试图在我的data.sql中创建存储过程时,我得到以下错误: 我已经尝试添加

  • 问题内容: 我正在从PHP中读取一个TEXT文件,并试图从中执行命令,例如创建一个DB及其具有的所有表和过程。我的代码创建表,但不创建文件中给定的存储过程。 PDO没有创建SP,那么将如何完成此任务?我尝试一起执行所有代码部分并逐行执行,但没有任何效果。 我正在尝试制作数据库安装程序脚本。 问题答案: 好吧,PMA帮助我回答了我自己的问题。 为了克服这个问题,您需要删除过程的定界符部分,以便查询变

  • 问题内容: 这是我第一次发布问题,我需要编写一个Java存储过程来创建一个excel文件并返回一个包含字节数据的blob。 我的pl / sql函数的格式如下 我的Java方法如下 我的问题是我找不到任何方法来创建java.sql.Blob的实例,因此我可以使用blob.setBinaryStream(..)方法写入文件数据字节数组。 我尝试使用 SerialBlob 实现,但导致以下oracle