首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >%ROWTYPE的UTL_FILE .错误

%ROWTYPE的UTL_FILE .错误
EN

Stack Overflow用户
提问于 2012-12-28 04:06:15
回答 1查看 732关注 0票数 0

我想要创建一个从员工那里获取行的过程,记录的薪水比输入的要多。然后把输出输出到文本文件中。我不明白我做错了什么。请帮帮我。提前谢谢。

我有员工表,如下所示。Desc表中的员工;名为Null?类型

EMPLOYEE_ID非空数(6)

FIRST_NAME VARCHAR2(20)

LAST_NAME NULL VARCHAR2(25)

电子邮件非空VARCHAR2(25)

PHONE_NUMBER VARCHAR2(20)

HIRE_DATE非空日期

JOB_ID NULL VARCHAR2(10)

薪金编号(8,2)

COMMISSION_PCT数(2,2)

MANAGER_ID数(6)

DEPARTMENT_ID数(4)

当我想按脚本运行的时候。

代码语言:javascript
复制
    CREATE OR REPLACE PROCEDURE P_TEST3 ( P_SAL NUMBER) IS

    TYPE EMP_TEMP IS TABLE OF employees%ROWTYPE;
   V_EMP_ROW     EMP_TEMP ;


 V1 utl_file.file_type;

 E1 utl_file.file_type;

    BEGIN


 V1 := utl_file.fopen('ABC','VALID.txt','W');
E1 := utl_file.fopen('ABC','ERROR.txt','W');

SELECT *  BULK COLLECT INTO V_EMP_ROW   FROM Employees  WHERE salary > p_sal   ;

FOR i IN  V_EMP_ROW.FIRST .. V_EMP_ROW.LAST 
    LOOP
    UTL_FILE.PUT_LINE (V1, V_EMP_ROW(I).EMPLOYEE_ID ||',' || V_EMP_ROW(I).FIRST_NAME ||','|| V_EMP_ROW(I).SALARY );
    END LOOP;

  dbms_output.put_line ('Total row inserted '||sql%rowcount || '.  Please see valid.txt file ' );


EXCEPTION

WHEN OTHERS THEN
raise_application_error( -20002,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

utl_file.put_line (E1,SQLCODE || '---' || SQLERRM);

DBMS_OUTPUT.PUT_LINE ('PLEASE SEE Error.txt FILE');

utl_file.fclose(v1);
utl_file.fclose(E1);

 END P_TEST3;

/

编译器给出了下面的错误。警告ORA-24344:成功编译错误21/42 PLS-00302:组件'EMPLOYEE_ID‘必须声明为21/9 PL/SQL:忽略语句(1: 0):警告:已编译但编译错误

EN

回答 1

Stack Overflow用户

发布于 2013-02-22 19:47:38

给出错误的行是21,这似乎是:

代码语言:javascript
复制
UTL_FILE.PUT_LINE (V1, V_EMP_ROW(I).EMPLOYEE_ID ||',' || V_EMP_ROW(I).FIRST_NAME ||','|| V_EMP_ROW(I).SALARY );

我建议问题是,要么在BULK语句中不返回任何行,要么它们不是您所期望的格式。

试着加入这样的东西:

代码语言:javascript
复制
dbms_output.put_line('Record is: '|| V_EMPROW(i));

作为循环的第一行。

或者,可以在循环之前对大容量选择结果进行记录计数:

代码语言:javascript
复制
dbms_output.put_line('Record count is: '|| V_EMPROW.COUNT);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14064435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档