2017-01-11 3 views
0

이것은 내 코드입니다. Data Studio에서 z/OS 용 UDF 함수를 만들려고합니다. 외부 기능이나 다른 기능을 사용할 필요가 없습니다. 이 SQL 함수를 실행해야합니다.DB2 Z/OS 8.1 버전에서 사용자 정의 함수를 작성하는 방법은 무엇입니까?

CREATE FUNCTION FUNCTION5() 
RETURNS FLOAT 
language sql 
DETERMINISTIC 
READS SQL DATA 
NO EXTERNAL ACTION 
BEGIN 
DECLARE RANVAL FLOAT ; 
SELECT RAND() INTO RANVAL FROM SYSIBM.SYSDUMMY1; 
RETURN RANVAL ; 
END 

위의 코드를 실행하는 동안이 오류가 발생합니다. 제발 도와주세요. 제발 도와주세요.

DB2 Z/OS에서 거의 20 개의 스칼라 UDF를 개발하고 싶습니다. 친절하게 나를 도와주세요.

Deploy [MeDB]MeDB.FUNCTION5 

Running 
MeDB.FUNCTION5 - Deploy started. 
Create user-defined function returns SQLCODE: -199, SQLSTATE: 42601. 
MeDB.FUNCTION5: 0: DB2 SQL Error: SQLCODE=-199, SQLSTATE=42601,  SQLERRMC=DECLARE;ON AFTER <INTEGER>, DRIVER=4.18.60 
DB2 SQL Error: SQLCODE=-199, SQLSTATE=42601, SQLERRMC=DECLARE;ON AFTER <INTEGER>, DRIVER=4.18.60 
MeDB.FUNCTION5 - Deploy failed. 
MeDB.FUNCTION5 - Roll back completed successfully. 
+0

나를 위해 작동합니다. 귀하의 코드를 실행하고 함수를 만들었습니다 FUNCTION5 – uSeruSher

+0

@ vijayksingh.vj 그래, 답장을 보내 주셔서 감사합니다. 위의 코드를 실행중인 버전을 알려주실 수 있습니까? –

+0

나는 그것의 V7을 믿는다 – uSeruSher

답변

0

당신이 만들려고하고있는 기능은 DB2 7. BEGIN, END의 사용에서 지원되지 않습니다 믿고 선언 키워드는 때까지 지원되지 않습니다 SQLPL를 사용하려는 표시 DB2 10은 컴파일 된 스칼라 함수로 사용됩니다. 나는 7 모든 문서가없는,하지만 난 당신이 단지 the DB2 10 reference for CREATE FUNCTION (inline scalar)에 설명 된대로 RETURN 문에서 하나 개의 표현에 제한 인라인 스칼라 함수를 만들 수 있다고 생각 :

기능을 CREATE (인라인 SQL 스칼라) 명령문은 현재 서버에서 SQL 스칼라 함수를 정의하고 함수의 본문에 대한 SQL 절차 언어 RETURN 문을 지정합니다. 이 함수는 호출 될 때마다 단일 값을 반환합니다.

SQL 루틴 본문

는 하나의 RETURN 문을 지정합니다.

+0

Thanks @ david, 데이터 클라이언트 V3.1에서 SQL UDF 및 SQL 저장 프로 시저 DB2 Z/OS V8.1을 배포하기위한 사전 구성이 있습니까? –

+0

@VivekHarry 죄송합니다. 그런 경험이 없습니다. – David

관련 문제