아래를 실행하려고하는데 SP
아래 오류가 발생합니다.
CREATE OR REPLACE PROCEDURE denodo.CLEAR_INDEX
( INDEX_NAME1 IN VARCHAR2,
INDEX_NAME2 IN VARCHAR2,
IT_WORKED OUT BOOLEAN ) as
BEGIN
IT_WORKED := FALSE;
EXECUTE IMMEDIATE 'drop index ' || INDEX_NAME1;
EXECUTE IMMEDIATE 'drop index ' || INDEX_NAME2;
IT_WORKED := TRUE;
EXCEPTION
WHEN OTHERS THEN
IT_WORKED := FALSE;
END CLEAR_INDEX;
CLEAR_INDEX # 0 [JDBC ROUTE] [ERROR] 'ORA-06550 : 줄 1, 열 7 : PLS-00306 :'CLEAR_INDEX '호출에서 잘못된 개수 또는 인수 유형이 수신되었습니다. ORA-06550 : 줄 1, 열 7 : PL / SQL : 명령문 무시 됨
여기서 무슨 일이 일어나고 있습니까? 당신의 도움을 주셔서 감사합니다.
이 오류는 일반적으로 BOOLEAN
데이터 유형을 OUT
매개 변수 로 처리하고 이를 인쇄하거나 다른 내장 Oracle 패키지로 작업을 수행하려고 할 때 발생 합니다. 또는 다른 패키지 BOOLEAN
에서 데이터 유형을 직접 사용할 수 없습니다 . 예를 들어, 매개 변수 를 인쇄 하려면 . 아래와 같이 실행하려고 할 때 직면 한 오류를 보여주는 아래 예제를 참조하십시오.dbms_output.put_line
DBMS
OUT
sys.diutil.bool_to_int
DECLARE
inx VARCHAR2(100):='ABC';
var BOOLEAN;
BEGIN
CLEAR_INDEX(INDEX_NAME1=>inx ,IT_WORKED =>var);
dbms_output.put_line(var);
END;
당신은 문제에 직면합니다.
ORA-06550: line 6, column 3:
PLS-00306: wrong number or types of arguments in call to 'PUT_LINE'
ORA-06550: line 6, column 3:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action
이러한 문제를 극복하려면 다음과 같이 실행해야합니다.
DECLARE
inx VARCHAR2(100):='ABC';
var BOOLEAN;
var1 varchar2(10);
BEGIN
CLEAR_INDEX(INDEX_NAME1=>inx ,IT_WORKED =>var);
var1:=CASE WHEN (sys.diutil.bool_to_int(var)) = 1 THEN 'TRUE'
WHEN (sys.diutil.bool_to_int(var)) = 0 THEN 'FALSE'
END;
dbms_output.put_line(var1);
END;
산출:
anonymous block completed
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다