首页 文章

PL / SQL代码返回错误

提问于
浏览
0
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 interval date二进制国家字符nchar ORA-06550:第2行,第74列:PLS-00103:遇到下列之一时遇到符号“,”:. (* @%& - / at loop mod remaining rem .. || multiset ORA-06550:第5行,第4列:PLS-00103:遇到以下其中一项时遇到符号“IS”:: = . ),@ %default character ORA-06550:第13行,第4列:PLS-00103:遇到以下其中一项时遇到符号“end-of-file”:end not pragma final instantiable order overriding static member constructor map 06550. 00000 - “行%s,列%s:\ n%s“*原因:通常是PL / SQL编译错误 . *行动:

2 回答

  • 1

    我看到两件事:
    1)您应该删除 p_codeP_product 后面的 in . 那些是不需要的 . 空白就足够了,因为它们是局部变量而不是函数/过程的输入/输出参数
    2)在 XML_HOURS_LOAD.code%TYPE 后面你有一个 , ,你需要一个 ; .

  • 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;
    

相关问题