PL / SQL代码返回错误

时间:2018-02-08 14:53:52

标签: sql oracle plsql

DECLARE
   p_code in XML_HOURS_LOAD.code%TYPE,
   p_product in XML_HOURS_LOAD.product%TYPE;
   CURSOR cXmlHoursLoadCursor IS (SELECT code, product FROM xml_hours_load); 
BEGIN
    FOR v IN cXmlHoursLoadCursor LOOP
       Cascade_Load(v.code, v.product);
       COMMIT; 
    END LOOP;
END;

我在尝试运行上面的代码时遇到以下错误,我做错了什么? (提前谢谢):

  

ORA-06550:第2行,第29栏:PLS-00103:遇到符号" IN"   期待以下之一:

     

常量异常表long double ref char time timestamp   间隔日期二进制国家字符nchar ORA-06550:第2行,   第74栏:PLS-00103:遇到符号","当期待其中一个   以下内容:

     

。 (* @%& - + / at loop mod remaining rem .. || multiset ORA-06550:第5行,第4列:PLS-00103:遇到   符号" IS"期待以下之一:

     

:=。 ),@%默认字符ORA-06550:第13行,第4列:   PLS-00103:遇到符号"文件结束"当期待其中一个   以下内容:

     

结束不是pragma最终可实例化的顺序覆盖静态成员   构造函数映射   06550. 00000 - "行%s,列%s:\ n%s"   *原因:通常是PL / SQL编译错误。   *操作:

2 个答案:

答案 0 :(得分:1)

我看到两件事:
1)您应该移除addNewTodo = () => { code..... } in后面的p_code。那些是不需要的。空白就足够了,因为它们是局部变量而不是函数/过程的输入/输出参数 2)在P_product后面你有XML_HOURS_LOAD.code%TYPE,你需要,

答案 1 :(得分:0)

您正在添加PL/SQL variable anchors

  

PL / SQL为您提供了一个非常有用的功能,称为变量锚。它指的是使用%TYPE关键字声明一个变量,其数据类型与表中特定列的列数据类型相关联。

例如声明为[variableName] [dataType];

  

v_first_name EMPLOYEES.FIRST_NAME%TYPE;

     

v_last_name EMPLOYEES.LAST_NAME%TYPE;

在你的情况下

p_code XML_HOURS_LOAD.code%TYPE;
p_product XML_HOURS_LOAD.product%TYPE;