oracle存储过程问题请教

www_huabo 2009-06-05 01:48:22
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,想写个存储过程,但是出现上面清空。请问上面是什么原因????????
...全文
374 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
www_huabo 2009-06-05
  • 打赏
  • 举报
回复
非常感谢。。
suncrafted 2009-06-05
  • 打赏
  • 举报
回复
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;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧