首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

oracel新手

2012-06-15 
oracel新手求助创建了这样一张表create table testTbl(ID INTEGER PRIMARY KEY NOT NULL,I_PIHAO VARCHAR2

oracel新手求助
创建了这样一张表

create table testTbl(
ID INTEGER PRIMARY KEY NOT NULL,
I_PIHAO VARCHAR2(50) UNIQUE,
S_CID VARCHAR2(50)
)

和函数  

CREATE SEQUENCE testTbl_SEQUENCE
INCREMENT BY 1
NOCACHE  
NOMAXVALUE
NOCYCLE

CREATE OR REPLACE FUNCTION FUNC_testTBL return INTEGER is  
begin
  V_ID INTEGER;
  SELECT testTbl_SEQUENCE.Nextval INTO V_ID FROM DUAL;
  RETURN (V_ID);
end testTBL;



然后在执行一下存储过程 一直报错  

列在此处不允许
和无效SQL语句两个错误
不知是什么原因,求高手相助


CREATE OR REPLACE PROCEDURAL P_TBLTEST
(
  V_ID OUT integer,
  I_PIHAO VARCHAR2,
  S_CID VARCHAR2
)
IS  
BEGIN
  V_ID:=FUNC_testTBL();
  INSERT INTO TESTTBL (testTbl.Id,testTbl.i_Pihao,testTbl.s_Cid) VALUES(V_ID,I_PIHAO,S_CID);
END P_TBLTEST;

[解决办法]
这样写还可以一步到位:

SQL code
CREATE OR REPLACE PROCEDURAL P_TBLTEST(  V_ID OUT integer,  I_PIHAO VARCHAR2,  S_CID VARCHAR2)IS   BEGIN  INSERT INTO TESTTBL (Id,i_Pihao,s_Cid)   VALUES(testTbl_SEQUENCE.Nextval,I_PIHAO,S_CID) RETURNING ID INTO V_ID;END P_TBLTEST; 

热点排行