目标: 我有一个程序,我想在Toad的SQL窗口中调用它来查看它正在拉动的数据,但我遇到的问题是我如何处理它并且想知道语法应该是什么样的。< / p>
具体细节:
我有一个程序,它接受三个var,OUTs三个var。为简单起见,名称和类型如下:
var1 VARCHAR2
var2 VARCHAR2
var3 NUMBER(长度:22)
var4 PL / SQL TABLE(长度:22)
var5 PL / SQL TABLE(长度:22)
var6 PL / SQL TABLE(长度:22)
在SQL窗口中,我有以下内容:
DECLARE
paramOut4 TABLE("22");
paramOut5 TABLE("22");
paramOut6 TABLE("22");
BEGIN
SOME_SCHEMA.SOME_PROCEDURE('someString', 4, 2, paramOut4, paramOut5, paramOut6);
END;
这给了我错误:
ORA-06550:第2行第21列:PLS-00103:遇到符号“)” 期待以下之一:
标识符是双引号分隔标识符LONG_
double ref char time timestamp interval date binary binary
character nchar符号“an identifier”替换为“)” 接着说。 ORA-06550:第3行,第21栏:PLS-00103:遇到了 符号“)”当期待下列之一时:标识符是双引号分隔标识符LONG_
double ref char time timestamp interval date binary binary
character nchar符号“ORA-06550:第4行,第21列: PLS-00103:当期待其中一个时遇到符号“)” 以下内容:标识符是双引号分隔标识符LONG_
double ref char time timestamp interval date binary binary
character nchar符号“an
即使它应该是一个数字而不是表长度的字符串,我添加了双引号,因为没有它们会抱怨:
ORA-06550:第2行第17列:PLS-00103:遇到符号“22” 期待以下之一:
pragma标识符是双引号分隔标识符 电流
我有那里的人,因为当我刚拿到“TABLE”时,它抱怨说:
发生以下错误:
ORA-06550:第2行,第16栏:PLS-00103:遇到符号“;” 期待以下之一:
(
答案 0 :(得分:1)
您必须在声明变量之前定义表类型。例如,您可以定义一个名为t_table的类型来声明数字数组的变量:
DECLARE
TYPE t_table IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
var4 t_table;
var5 t_table;
var6 t_table;
BEGIN
SOME_SCHEMA.SOME_PROCEDURE('someString', 4, 2, paramOut4, paramOut5, paramOut6);
END;