2016-08-01 2 views
0

아래의 "IN"키워드를이 Oracle PL/SQL 코드에서 Netezza SQL 코드로 어떻게 변환 할 수 있습니까?Oracle 프로 시저의 "IN"키워드를 Netezza 저장 프로 시저의 동등한 논리로 변환

CREATE OR REPLACE PROCEDURE SP1 (typ IN VARCHAR, str IN VARCHAR) as 

p1 varchar(50); 
p2 number(9); 
p3 char(1); 

BEGIN 

-- CODE GOES HERE 

END SP1 
+0

어쨌든 Oracle PL/SQL의 기본값이기 때문에'IN' 키워드를 제거 할 수는 없습니까? –

+0

"IN"제거가 작동하지 않았습니다. – MacGyver

+0

빠른 검색에서 공식 인수 이름을 지정하지 않았 으면 유형을 지정하기 만하면됩니다. 코드에서 $ 1 등으로 참조하십시오. 내가 사용한 적은 아니지만 선택 사항 일 수도 있습니다. 실제로 실행중인 코드와 오류를 표시하는 것이 도움이 될 것입니다. –

답변

0

Netezza의 매개 변수 목록은 모두 입력 전용이며 위치별로 참조됩니다.

DECLARE 블록에 ALIAS가있는 의미있는 이름의 위치 입력을 연결합니다. 이 매개 변수는 프로 시저의 범위에서 일정합니다.

p_ 이름 지정은 스타일 규칙으로 만 사용됩니다. p_ 이름 지정은 상수임을 상기시키기위한 것입니다. 변수는 종종 v_로 시작됩니다.

코드에 대한 Netezza에 대한 빠른 매핑은 다음과 같습니다.

CREATE OR REPLACE PROCEDURE SP1 (VARCHAR(any), VARCHAR(any)) 
RETURNS INTEGER 
LANGUAGE NZPLSQL AS 
BEGIN_PROC 
DECLARE 
p_typ ALIAS FOR $1; 
p_str ALIAS FOR $2; 

v_1 varchar(50); 
v_2 bigint; -- changed this to be a valid Netezza for the example 
v_3 char(1); 

BEGIN 

-- CODE GOES HERE 



END; 

END_PROC;