본문 바로가기

IT관련

오라클 에러 정보 (ORA-06550, PLS-00363) - PL/SQL 에러 "식은 피할당자로 사용될 수 없습니다"

ORA-06550 에러는 PL/SQL 스크립트에서 에러가 난 줄(Line)과 열(Column) 위치정보를 알려주는 부가적인 에러입니다.

ORA-06550 에러가 나는 경우, 반드시 진짜 에러원인을 나타내는 에러가 함께 표시됩니다.

 

PLS-00363 에러는 Oracle 에서 Procedure 나 Function 호출할때 인자(Parameter)를 잘못 준 경우에 발생합니다.

 

 

위에서는 AAA() 프로시져를 호출하였는데, 이때 100 이라는 값을 인자로 넘겨줬습니다.

하지만, AAA 프로시져는 아래와 같은 소스로 되어 있고, 인자가 in 속성이 아니고, out 속성으로 되어있습니다.

 

 

Oracle PL/SQL 에서 Procedure 나 Function 에 넘겨주는 인자(파라메타)는 in/out 속성이 있어서 in 인 경우에는 프로시져안으로 값을 넘겨주고, out 인 경우에는 프로시져에서 밖으로 값을 리턴하게 됩니다.

 

따라서 A1 인자는 out 으로 설정되어 있기 때문에 100 이라는 숫자상수를 넘겨주면 값을 리턴받을수 없어서 PLS_00363 에러가 발생한 것입니다.

 

이런 경우에는 아래와 같이 값을 넘겨받을 변수를 먼저 선언해주고 그 변수를 인자로 넣어주면 됩니다.

 

 

변수 선언할때 SQL*Plus 에서 variable 이라는 커맨드를 사용하면 됩니다.

리턴받을 값을 출력할 때는 print 커맨드를 사용하면 리턴된 값을 볼 수 있습니다.

 

ORA-06550, PLS-00363 은 영어환경에서 표시되는 에러메시지는 아래와 같습니다.

 

ORA-06550: line 1, column 11:
PLS-00363: expression '100' cannot be used as an assignment target