使用 Oracle 的 PL/SQL 函数中的错误 "Invalid Instruction"
Error "Invalid Instruction" in PL/SQL function using Oracle
我在这里尝试创建一种布尔函数,但是当我尝试编译它时,它告诉我我的指令“truth INTEGER;”是不正确的。我无法弄清楚问题出在哪里,因为我在 Google 上看到的每个代码示例都与我的非常相似。使用 Oracle 对我来说是全新的,所以如果有人愿意帮助我,我有点不知所措...
我通过搜索尝试了很多东西,但没有任何效果,所以我在这里寻求帮助...
代码:
CREATE OR REPLACE FUNCTION HISTOTOX.matching_idipl (iDiplNumero INTEGER) RETURN INTEGER
AS
cpt INTEGER;
truth INTEGER;
BEGIN
SELECT count(*) INTO cpt FROM GARNUCHE.INSC_DIPL WHERE IDIPL_NUMERO = iDiplNumero;
IF cpt = 1 THEN
truth := 1;
ELSE
truth := 0;
END IF;
RETURN truth;
END;
您报告的不是 Oracle 错误。我在我的 11g 中 复制了 你的代码,一切正常:
SQL> CREATE OR REPLACE FUNCTION matching_idipl (iDiplNumero INTEGER) RETURN INTEGER
2 AS
3 cpt INTEGER;
4 truth INTEGER;
5
6 BEGIN
7 SELECT count(*) INTO cpt FROM INSC_DIPL WHERE IDIPL_NUMERO = iDiplNumero;
8 IF cpt = 1 THEN
9 truth := 1;
10 ELSE
11 truth := 0;
12 END IF;
13 RETURN truth;
14 END;
15 /
Function created.
SQL> select matching_idipl(1) from dual;
MATCHING_IDIPL(1)
-----------------
1
SQL>
那么:您到底在哪里执行了该代码?您遇到了哪个错误(请提供确切的消息和 错误代码 )?
我在这里尝试创建一种布尔函数,但是当我尝试编译它时,它告诉我我的指令“truth INTEGER;”是不正确的。我无法弄清楚问题出在哪里,因为我在 Google 上看到的每个代码示例都与我的非常相似。使用 Oracle 对我来说是全新的,所以如果有人愿意帮助我,我有点不知所措...
我通过搜索尝试了很多东西,但没有任何效果,所以我在这里寻求帮助...
代码:
CREATE OR REPLACE FUNCTION HISTOTOX.matching_idipl (iDiplNumero INTEGER) RETURN INTEGER
AS
cpt INTEGER;
truth INTEGER;
BEGIN
SELECT count(*) INTO cpt FROM GARNUCHE.INSC_DIPL WHERE IDIPL_NUMERO = iDiplNumero;
IF cpt = 1 THEN
truth := 1;
ELSE
truth := 0;
END IF;
RETURN truth;
END;
您报告的不是 Oracle 错误。我在我的 11g 中 复制了 你的代码,一切正常:
SQL> CREATE OR REPLACE FUNCTION matching_idipl (iDiplNumero INTEGER) RETURN INTEGER
2 AS
3 cpt INTEGER;
4 truth INTEGER;
5
6 BEGIN
7 SELECT count(*) INTO cpt FROM INSC_DIPL WHERE IDIPL_NUMERO = iDiplNumero;
8 IF cpt = 1 THEN
9 truth := 1;
10 ELSE
11 truth := 0;
12 END IF;
13 RETURN truth;
14 END;
15 /
Function created.
SQL> select matching_idipl(1) from dual;
MATCHING_IDIPL(1)
-----------------
1
SQL>
那么:您到底在哪里执行了该代码?您遇到了哪个错误(请提供确切的消息和 错误代码 )?