한 가지가 PL/SQL 블록 외부의 PL/SQL 함수 또는 프로 시저를 호출하려고
카일 주셔서 대단히 감사합니다. 당신은 예를 들어, begin
및 end
에서 절차에 대한 호출을 포장해야 할 수 있습니다.
이
SQL> dbms_lock.sleep(1);
SP2-0734: unknown command beginning "dbms_lock...." - rest of line ignored.
SQL> begin dbms_lock.sleep(1); end;
2/
PL/SQL procedure successfully completed.
(자체 라인에 하나의 /
가 입력의 끝에 있다는 SQL의 *를 알려줍니다 플러스 일반적으로 SQL * 플러스 세미콜론을 사용하여 명령문의 끝을 표시하지만 PL/SQL은 세미콜론을 포함 할 수 있으며 SQL * Plus가 PL/SQL을 입력하는 것을 인식하면 입력을 전달하기 전에 단일 /
을 기다립니다.
표시되는 오류의 다른 가능한 원인은 쿼리 내에서 저장 프로 시저를 호출하려고한다는 것입니다. 저장 프로 시저가 결과를 반환하지 않기 때문에 가능하지 않습니다. 틀림없이, 쿼리 내에서 프로 시저를 호출 할 경우 당신이 얻을 오류가 특히 도움이되지 않습니다 :
SQL> select dbms_alert.register('test') from dual;
select dbms_alert.register('test') from dual
*
ERROR at line 1:
ORA-00904: "DBMS_ALERT"."REGISTER": invalid identifier
이 오류의 원인은 오라클이 저장 프로 시저 중 찾고 귀찮게하지 않는 될 가능성이 높습니다 dbms_alert.register
이라는 이름을 사용하고 있으므로 대신 '이 이름을 찾을 수 없습니다'오류가 발생합니다.
내가 설명한대로 문제가 해결되지 않으면 알려 주시기 바랍니다.
우리에게 실행중인 SQL을 보여주십시오 –