SQL语句返回插入ID,有插入,难道没法做到?!!
接上贴,http://bbs.csdn.net/topics/390535271
语句是这样,需要加入一个操作:
DECLARE
V_SEQID NUMBER;
BEGIN
SELECT SEQ_QQGROUP_ID.NEXTVAL INTO V_SEQID FROM DUAL;
Insert into T_BD_GROUPHEADER
(GH_ID,
GH_Name,
GH_TYPE,
GH_LOGO,
GH_SUMMARY,
GH_NOTICE_RTF,
GH_OP_ID_CREATOR,
GH_CREATOR_NAME)
Values
(V_SEQID,
'江正(1001286) 创建的讨论组',
'2',
NULL,
'江正(1001286) 创建于 08月-02日',
NULL,
'828',
'江正');
INSERT INTO T_BD_GROUPLINE
(OP_ID, GH_ID, GL_OP_ALIAS)
Select 828, V_SEQID, '江正(1001286)'
FROM DUAL
UNION
Select 1474, V_SEQID, '陈维(1002392)'
FROM DUAL
UNION
Select 726, V_SEQID, '姚婕(1001068)'
FROM DUAL
UNION
Select 13, V_SEQID, '张莉(1000013)'
FROM DUAL
UNION
Select 468, V_SEQID, '庄艳(1000611)' FROM DUAL;
COMMIT;
END;
GH_TYPE,
GH_LOGO,
GH_SUMMARY,
GH_NOTICE_RTF,
GH_OP_ID_CREATOR,
GH_CREATOR_NAME)
Values
(V_SEQID,
'江正(1001286) 创建的讨论组',
'2',
NULL,
'江正(1001286) 创建于 08月-02日',
NULL,
'828',
'江正') return id into V_SEQID;
[解决办法]
错了,应该是
Insert into T_BD_GROUPHEADER
(GH_ID,
GH_Name,
GH_TYPE,
GH_LOGO,
GH_SUMMARY,
GH_NOTICE_RTF,
GH_OP_ID_CREATOR,
GH_CREATOR_NAME)
Values
(SEQ_QQGROUP_ID.NEXTVAL,
'江正(1001286) 创建的讨论组',
'2',
NULL,
'江正(1001286) 创建于 08月-02日',
NULL,
'828',
'江正') return GH_ID into V_SEQID;
[解决办法]
那最后再执行一次select V_SEQID from dual?
[解决办法]
oracle 的返回语法跟MS-SQL的不太一样呢,要返回一个值不是这样操作的。返回记录集也不能用直接用个SELECT查询出来就行了。
这是返回单个值的存储过程
create or replace procedure myPor(v_eno in number,v_ename out varchar2,v_sal out number,v_job out varchar2) is
begin
select ename,sal,job into v_ename,v_sal,v_job from emp where eno=v_eno;
end;
这是返回结果集的存储过程
create or replace procedure sp_pro
(spNo in number,p_cursor out testpackage.test_cursor) is
begin
open p_cursor for select * from emp where deptno=spNo;
close p_cursor;
end;
[解决办法]
这个不就是吗,return GH_ID into V_SEQID 就是把主键给你啦。
Insert into T_BD_GROUPHEADER
(GH_ID,
GH_Name,
GH_TYPE,
GH_LOGO,
GH_SUMMARY,
GH_NOTICE_RTF,
GH_OP_ID_CREATOR,
GH_CREATOR_NAME)
Values
(SEQ_QQGROUP_ID.NEXTVAL,
'江正(1001286) 创建的讨论组',
'2',
NULL,
'江正(1001286) 创建于 08月-02日',
NULL,
'828',
'江正') return GH_ID into V_SEQID;