我創建了常規函數。它已成功創建。但是,當我與解決Oracle中的「無法在查詢中執行DML」錯誤
select reg('awlad','01968688680','545466455','12345') from dual
運行它,它給了我這個錯誤:
ORA-14551: cannot perform a DML operation inside a query
我怎樣才能解決這個問題?
CREATE OR REPLACE FUNCTION reg(
name in varchar2,
cellNo in varchar2,
voterId in varchar2,
pass in varchar2
)
RETURN NUMBER
IS
succ NUMBER;
BEGIN
succ:=0;
insert into logInfo values(loginfo_seq.nextval,cellNo,pass,0);
succ:=1;
insert into passInfo values(name,cellNo,voterId);
succ:=2;
RETURN succ;
END;
謝謝洞穴。我試過這個,但是當我調用過程時,它向我顯示錯誤:調用'REG'時錯誤的數字或參數類型。我的程序是:CREATE OR REPLACE PROCEDURE REG(在VARCHAR2 名, cellNo在VARCHAR2, voterId在VARCHAR2, 通在VARCHAR2, SUCC出NUMBER ) AS BEGIN SUCC:= 0; 插入logInfo值(loginfo_seq.nextval,cellNo,pass,0); 插入到passInfo值(name,cellNo,voterId); succ:= 1; END; – 2012-04-01 17:24:35
@AwladLiton - 如果使用'OUT'參數創建過程,則需要傳入第五個參數。編輯我的答案,展示如何做到這一點。 – 2012-04-01 17:31:44