<?xml version='1.0' encoding='UTF-8'?>
<ROWSET tableName='xxx'>
/****************************************************************************/
/* SYSTEM_ID : GF                                                           */
/* GE54SQL_SET ( FUNCTION )                                                 */
/* Created : 2017/07/31 15:48:40                                            */
/****************************************************************************/
<EXEC_SQL>
CREATE 
FUNCTION GE54SQL_SET(
	XSYSTEM_ID  IN VARCHAR2 ,
	XLISTID     IN VARCHAR2 ,
	XKBTEXT     IN VARCHAR2  )
RETURN VARCHAR2
/**********************************************************************/
/* 帳票定義マスタ SQL自動作成                                         */
/*  GE54SQL_SET( SYSTEM_ID,LISTID,KBTEXT )                            */
/*                                                                    */
/*	 SYSTEM_ID  IN VARCHAR2           システムID                      */
/*	 LISTID     IN VARCHAR2           帳票ID                          */
/*	 KBTEXT     IN VARCHAR2           テキスト区分(H,F,B)             */
/*                                                                    */
/*	指定された属性を元に、GE52 のカラム情報より GE54 の SQL文を       */
/*  作成します。                                                      */
/*                                                                    */
/**********************************************************************/
IS
    RTN			GE54.BSQL%TYPE;
    CNM			VARCHAR2(1);
--	CRLF		VARCHAR2(2)  := CHR(10) || CHR(13);
	CRLF		VARCHAR2(2)  := CHR(10) ;

	CURSOR CODEC1 IS
		SELECT CLM,START_POS,USE_LENGTH
			FROM	GE52
			WHERE	SYSTEM_ID  = XSYSTEM_ID
			AND		LISTID     = XLISTID
			AND		KBTEXT     = XKBTEXT
			AND		FGUSE      = &apos;1&apos;
			AND		FGJ       IN ( &apos;0&apos;,&apos;1&apos; )
			ORDER BY SEQ ;

	CODEREC CODEC1%ROWTYPE;

BEGIN
	RTN := &apos;SELECT&apos; || CRLF ;
	CNM := &apos; &apos; ;

	OPEN	CODEC1;

	LOOP
		FETCH CODEC1 INTO CODEREC;
		EXIT WHEN CODEC1%NOTFOUND;

		RTN := RTN || &apos; &apos; || CNM || &apos;CUT(TEXT,&apos; ||
					CODEREC.START_POS || &apos;,&apos; || CODEREC.USE_LENGTH || &apos;) &apos; ||
					CODEREC.CLM || CRLF ;
		CNM := &apos;,&apos; ;

	END LOOP;
	CLOSE CODEC1;

	/* CNM が、スペースのままであるとき、データが ０件であった。 */
	IF( CNM = &apos; &apos; ) THEN
		RTN := &apos;&apos;;
	ELSE
		RTN := RTN || &apos; FROM GE51 WHERE FGJ = &apos; || &apos;&apos;&apos;1&apos;&apos;&apos; || CRLF ||
				&apos; AND   SYSTEM_ID = ? &apos; || CRLF ||
				&apos; AND   YKNO      = ? &apos; || CRLF ||
				&apos; AND   KBTEXT    = &apos; || &apos;&apos;&apos;&apos; || XKBTEXT || &apos;&apos;&apos;&apos; || CRLF ||
				&apos; ORDER BY EDNO&apos; ;
	END IF;

	RETURN RTN;

END GE54SQL_SET;

</EXEC_SQL>
</ROWSET>
