通常の機能を作成しました。それは正常に作成されました。私は解決方法「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で 名、VARCHAR2で cellNo、VARCHAR2で voterId、VARCHAR2で パス、 SUCCアウトNUMBER ) のsucc BEGIN AS:= 0; logInfoの値に挿入します(loginfo_seq.nextval、cellNo、pass、0)。 passInfoの値(name、cellNo、voterId)に挿入します。 succ:= 1; END; –
@AwladLiton - 「OUT」パラメータを使用してプロシージャを作成した場合は、5番目のパラメータを渡す必要があります。それを行う方法を示すために私の答えを編集しました。 –