关于存储过程的问题
时间:2011-11-28
来源:互联网
create table TBL_REST_WAITING_QUEUE
(
USER_CODE VARCHAR2(12),
USER_NAME VARCHAR2(12),
AGENT_CODE VARCHAR2(12),
BRAND VARCHAR2(30),
REQ_MESSAGEID VARCHAR2(20),
BEGIN_WAITING DATE default SYSDATE,
QUEUE_LIST VARCHAR2(50),
REQ_TYPE INTEGER,
REQ_REST_TYPE VARCHAR2(20),
REQ_REST_TXT VARCHAR2(100),
ISENABLEREST INTEGER default 0,
ISENABLERESTTIME DATE,
ISENABLEAGENTCODE VARCHAR2(20),
ISENABLETXT VARCHAR2(100),
ID INTEGER,
SENDREMIND INTEGER default 0,
SENDTIME DATE
)
create table TBL_REST_WAITING_HISTORY
(
RecordID INTEGER,
USER_CODE VARCHAR2(12),
AGENT_CODE VARCHAR2(12),
BEGIN_WAITING DATE,
END_WAITING DATE,
ENDSTATE VARCHAR2(12),
RECORDCREATE DATE default sysdate not null,
ENDSUBSTATE VARCHAR2(12),
BRAND VARCHAR2(20)
)
存储过程如下
create or replace procedure MonitorWaitingQueue(CURRENT_STATUS IN VARCHAR2,
SUB_STATUS IN VARCHAR2,
AGENT_CODE IN VARCHAR2) is
L_AGENT_CODE VARCHAR2(12) := AGENT_CODE;
L_END_WAITING DATE := sysdate;
L_ENDSTATE VARCHAR2(12) := CURRENT_STATUS;
L_ENDSUBSTATE VARCHAR2(12):= SUB_STATUS;
cur_restdata tbl_rest_waiting_queue%rowtype;
begin
select * into cur_restdata from tbl_rest_waiting_queue t
where t.agent_code = L_AGENT_CODE;
INSERT INTO tbl_rest_waiting_history
(USER_CODE,AGENT_CODE,BEGIN_WAITING,END_WAITING,ENDSTATE,ENDSUBSTATE,BRAND)
values
(cur_restdata.user_code,cur_restdata.agent_code,cur_restdata.begin_waiting,L_END_WAITING,L_ENDSTATE,L_ENDSUBSTATE,cur_restdata.brand);
end MonitorWaitingQueue;
在DELPHI中调用存储过程不成功,在PL/SQL Developer中点右键 test,输入参数执行不了, 在Select 附近就出错了,运行不了,不懂 Oracle的存储过程,谢谢大家!
作者: liuhengwinner 发布时间: 2011-11-28
create or replace procedure MonitorWaitingQueue(CURRENT_STATUS IN VARCHAR2, SUB_STATUS IN VARCHAR2, AGENT_CODE IN VARCHAR2) is DECLARE L_AGENT_CODE VARCHAR2(12); L_END_WAITING DATE; L_ENDSTATE VARCHAR2(12); L_ENDSUBSTATE VARCHAR2(12); cur_restdata tbl_rest_waiting_queue%rowtype; BEGIN L_AGENT_CODE:= AGENT_CODE; L_END_WAITING:= sysdate; L_ENDSTATE:= CURRENT_STATUS; L_ENDSUBSTATE:= SUB_STATUS; SELECT * INTO cur_restdata FROM tbl_rest_waiting_queue t WHERE t.agent_code = L_AGENT_CODE; INSERT INTO tbl_rest_waiting_history(USER_CODE,AGENT_CODE,BEGIN_WAITING,END_WAITING,ENDSTATE,ENDSUBSTATE,BRAND) VALUES (cur_restdata.user_code,cur_restdata.agent_code,cur_restdata.begin_waiting,L_END_WAITING,L_ENDSTATE,L_ENDSUBSTATE,cur_restdata.brand); end MonitorWaitingQueue;
作者: cosio 发布时间: 2011-11-28
where t.agent_code = L_AGENT_CODE;
INSERT INTO tbl_rest_waiting_history
(USER_CODE,AGENT_CODE,BEGIN_WAITING,END_WAITING,ENDSTATE,ENDSUBSTATE,BRAND)
values
(cur_restdata.user_code,cur_restdata.agent_code,cur_restdata.begin_waiting,L_END_WAITING,L_ENDSTATE,L_ENDSUBSTATE,cur_restdata.brand);
改成
INSERT INTO tbl_rest_waiting_history
(select * into cur_restdata from tbl_rest_waiting_queue t
where t.agent_code = L_AGENT_CODE;)试下
作者: ulihss 发布时间: 2011-11-28
作者: liuhengwinner 发布时间: 2011-11-28
自行查询一下。
没有数据无法判断。
作者: LuiseRADL 发布时间: 2011-11-28
WHERE t.agent_code = L_AGENT_CODE;
在这个地方你输入数据的时候是不是包ora-01403 未找到数据,这个地方的输入L_AGENT_CODE值一定要能在数据库中找到,不然会报错的。
作者: programmerxiaocai 发布时间: 2011-11-28
作者: LuiseRADL 发布时间: 2011-11-28
SQL code
create or replace procedure MonitorWaitingQueue(CURRENT_STATUS IN VARCHAR2, SUB_STATUS IN VARCHAR2, AGENT_CODE IN VARCHAR2) is L_AGENT_CODE VARCHAR2(12); L_END_WAITING DATE; L_ENDSTATE VARCHAR2(12); L_ENDSUBSTATE VARCHAR2(12); cursor cur_restdata is SELECT * FROM tbl_rest_waiting_queue t WHERE t.agent_code = L_AGENT_CODE; BEGIN L_AGENT_CODE:= AGENT_CODE; L_END_WAITING:= sysdate; L_ENDSTATE:= CURRENT_STATUS; L_ENDSUBSTATE:= SUB_STATUS; for v_cur_res in cur_restdata loop INSERT INTO tbl_rest_waiting_history(USER_CODE,AGENT_CODE,BEGIN_WAITING,END_WAITING,ENDSTATE,ENDSUBSTATE,BRAND) VALUES (cur_restdata.user_code,cur_restdata.agent_code,cur_restdata.begin_waiting,L_END_WAITING,L_ENDSTATE,L_ENDSUBSTATE,cur_restdata.brand); end loop; commit; end MonitorWaitingQueue;
作者: dws2004 发布时间: 2011-11-28
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28