create procedure customerinfo_down
(packlen in out varchar, 
serial_id  in out varchar,
exchangecode in varchar,
machine_id  in varchar,
operator_id in varchar) 
is
  v_id t_customerinfo.custormerid %type;
begin
  select custormerid into v_id from t_customerinfo;
end ;PROCEDURE XHB.CUSTOMERINFO_DOWN 编译错误错误:PLS-00302: 必须说明 'CUSTORMERID' 组件
行:8
文本:v_id t_customerinfo.custormerid %type;错误:PL/SQL: Item ignored
行:8
文本:v_id t_customerinfo.custormerid %type;错误:PL/SQL: ORA-00904: "CUSTORMERID": 无效的标识符
行:10
文本:select custormerid into v_id from t_customerinfo;错误:PL/SQL: SQL Statement ignored
行:10
文本:select custormerid into v_id from t_customerinfo;错误:提示: Parameter 'packlen' 已被声明但从来没有被用于 'customerinfo_down'
行:2
文本:(packlen in out varchar,错误:提示: Parameter 'serial_id' 已被声明但从来没有被用于 'customerinfo_down'
行:3
文本:serial_id  in out varchar,错误:提示: Parameter 'exchangecode' 已被声明但从来没有被用于 'customerinfo_down'
行:4
文本:exchangecode in varchar,错误:提示: Parameter 'machine_id' 已被声明但从来没有被用于 'customerinfo_down'
行:5
文本:machine_id  in varchar,错误:提示: Parameter 'operator_id' 已被声明但从来没有被用于 'customerinfo_down'
行:6
文本:operator_id in varchar)初学oracle,想写个存储过程,但是出现上面清空。请问上面是什么原因????????

解决方案 »

  1.   

    1 (packlen in out varchar, 
    serial_id  in out varchar, 
    exchangecode in varchar, 
    machine_id  in varchar, 
    operator_id in varchar)  在过程中没有用到,应该删掉2、v_id t_customerinfo.custormerid %type;  定义的是一个数值变量
     而select custormerid into v_id from t_customerinfo; 回返回多个值,出现错误。3、可以修改为:
    CREATE OR REPLACE PROCEDURE CUSTOMERINFO_DOWN IS
      V_ID T_CUSTOMERINFO.CUSTORMERID %TYPE;
    BEGIN
      SELECT CUSTORMERID
        INTO V_ID
        FROM T_CUSTOMERINFO
       WHERE ROWNUM = 1;
    END;