2014-11-12 8 views
0

내부 디렉토리를 만들어이 코드가 있습니다저장 프로 시저 PLSQL

create or replace PROCEDURE insert_dir(id number, filename varchar2, dir varchar2) 
IS 
    sqlQ varchar2; 
BEGIN 
    sqlQ := 'create directory DIR0001 as '||dir; 
    EXECUTE IMMEDIATE (sqlQ); 
END; 

나는 내부 저장 프로 시저를 디렉토리를 생성하고 매개 변수로 값을 전달하려고를하지만 난 오류 얻을 :

Package or function INSERT_DIR is in an invalid state 
06575. 00000 - "Package or function %s is in an invalid state" 
*Cause: A SQL statement references a PL/SQL function that is in an 
      invalid state. Oracle attempted to compile the function, but 
      detected errors. 
*Action: Check the SQL statement and the PL/SQL function for syntax 
      errors or incorrectly assigned, or missing, privileges for a 
      referenced object. 

을 전화 절차 :

CALL insert_dir(3,'pic.jpg','C:\Users\User\Desktop\media'); 

누군가 내가 뭘 잘못하고 있는지 알고 있습니까?

답변

1

절차를 컴파일 한 후 "컴파일 오류로 만든 프로 시저"라고 표시되어야합니다.

SHOW ERRORS을 발급하면 컴파일 오류 및 줄을 알려줍니다. 이 경우

이 오류가이 라인에 - 선언은 VARCHAR2의 크기, 예컨대 :

sqlQ varchar2(4000); 
이 필요