我的存储过程如下:
create or replace procedure YearPalnToMonth(tid in T_TRANSACTION_OBJECT.T_ID%Type,userID in char,PlanMonth in char,sucessed out boolean) is
vTID varchar(64);
vDID varchar(64);
vTempID varchar(32);
vUsedID varchar(64);
type Cur is ref cursor;
v_DeviceCur Cur;
begin
sucessed := false;
select S_SEQ_TRANSACTION.NEXTVAL into vTempID from dual;
vTID := userID||'@'||vTempID;
insert into T_PLAN_OBJECT values (vTID,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
update T_PLAN_OBJECT set (period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date)=(select period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date from T_PLAN_OBJECT where T_ID=tid) where T_ID=vTID;
commit;
sucessed :=true;
end;执行过程中没有任何问题,但是结果update语句好像是没有执行,数据库中只有insert进去的数据,update的数据没有写进去,但是把update语句拎出来以后变量替换一下就可以的。期待ing.
create or replace procedure YearPalnToMonth(tid in T_TRANSACTION_OBJECT.T_ID%Type,userID in char,PlanMonth in char,sucessed out boolean) is
vTID varchar(64);
vDID varchar(64);
vTempID varchar(32);
vUsedID varchar(64);
type Cur is ref cursor;
v_DeviceCur Cur;
begin
sucessed := false;
select S_SEQ_TRANSACTION.NEXTVAL into vTempID from dual;
vTID := userID||'@'||vTempID;
insert into T_PLAN_OBJECT values (vTID,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
update T_PLAN_OBJECT set (period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date)=(select period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date from T_PLAN_OBJECT where T_ID=tid) where T_ID=vTID;
commit;
sucessed :=true;
end;执行过程中没有任何问题,但是结果update语句好像是没有执行,数据库中只有insert进去的数据,update的数据没有写进去,但是把update语句拎出来以后变量替换一下就可以的。期待ing.
解决方案 »
- 用存储过程插入blob字段的问题。
- oracle 存储过程中根据年份统计出每月的总数
- 请教个excel表导入到Oracle里的问题?
- 请教一个SQL 优化
- 求一PL/SQL语句???
- 关于新建用户A找不到其它用户B下面的表的问题
- oracle安装时listener的问题,高手请指教!正好8月15了,回答个问题,祝你中秋快乐!
- LONG RAW 字段与SQL的IMAGE字段有什么区别?从LONG RAW字段中怎么取出??
- 紧急求救!!!----点击oracle setup 没反应
- 如何让下面的语句快速执行?非高手别进来。
- 如何在oracle reports中使用动态SQL做数据源(急)
- 把dataset中的数据导入到oracle数据库的问题
解决方法: insert后增加一次commit;
update T_PLAN_OBJECT set (period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date)=(select period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date from T_PLAN_OBJECT where T_ID=tid) where T_ID=vTID;
T_ID=tid????
select period_unit,period_length,executor_id,executor_nr,executor_name,beginning_date,end_date,ora_id,ora_nr,ora_name,maker_id,maker_nr,maker_name,make_date from T_PLAN_OBJECT where T_ID=tid,能查询出记录吗?
tid是传入变量,不执行过程,select能查询出结果吗?