/*************************************************************************/
/*	 title 		：	品番マスタ検索処理								 	 */
/*	 version	：	001												 	 */
/*	 date/author：	2003/06/30	K.Hasegawa(MIS)							 */
/*	 text		：	変更履歴管理開始									 */
/*************************************************************************/
/*****************************************************************************/
/*	品番マスタ検索処理													 	 */
/*****************************************************************************/
CREATE OR REPLACE PACKAGE INSERT_GF01_PKG AS
	PROCEDURE INSERT_GF01(
		P_KEKKA		OUT	NUMBER,
		P_ERRMSGS	OUT	ERR_MSG_ARRAY,
		P_NAMES     IN  VARCHAR2,
		P_SYSARGS	IN  SYSARG_ARRAY,
		P_GF01ARG	IN	GF01ARG_ARRAY );
END;
/

CREATE OR REPLACE PACKAGE BODY INSERT_GF01_PKG AS

	PROCEDURE INSERT_GF01(
		P_KEKKA		OUT	NUMBER,
		P_ERRMSGS	OUT	ERR_MSG_ARRAY,
		P_NAMES     IN  VARCHAR2,
		P_SYSARGS	IN  SYSARG_ARRAY,
		P_GF01ARG	IN	GF01ARG_ARRAY ) IS
-------------------------------------------------------------------------------
---------------------------<< 変数宣言 >> -------------------------------------
-------------------------------------------------------------------------------
	-- エラーラベル
	SUBSCRIPT_NOT_EXISTS	EXCEPTION;	-- 配列要素エラー
	TOO_MANY_ERRORS			EXCEPTION;	-- エラー件数最大数オーバーエラー
	ACQUIRE_WITH_NOWAIT		EXCEPTION;	-- NOWAIT時ロックエラー
	I  NUMBER;

	BEGIN
		FOR I IN 1..P_SYSARGS.COUNT LOOP
		/* GF01 INSERT */
		INSERT INTO GF01 (
						SYSTEM_ID      	,
						TBLSYU         	,
						TABLESPACE_NAME	,
						NAME_JA        	,
						DIRECTORY      	,
						DATA_FILE      	,
						SIZE_DATA      	,
						STATUS         	,
						FGJ            	,
						DYSET          	,
						DYUPD          	,
						USRSET         	,
						USRUPD         	,
						PRGUPD )		
		VALUES(
						P_GF01ARG(I).SYSTEM_ID			,
						P_GF01ARG(I).TBLSYU         	,
						P_GF01ARG(I).TABLESPACE_NAME	,
						P_GF01ARG(I).NAME_JA        	,
						P_GF01ARG(I).DIRECTORY      	,
						P_GF01ARG(I).DATA_FILE      	,
						P_GF01ARG(I).SIZE_DATA      	,
						P_GF01ARG(I).STATUS         	,
						'1'            					,
						TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),	/* 登録時間			*/
						TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS'),	/* 更新時間			*/
						P_GF01ARG(I).USRSET				,		/* 引数:ﾕｰｻﾞｰID		*/
						P_GF01ARG(I).USRSET				,		/* 引数:ﾕｰｻﾞｰID		*/
						'TEST32');								/* 更新PG			*/

			HYBS.SET_ERRMSGS(P_ERRMSGS,				-- エラーメッセージ配列
						P_SYSARGS(I).NO,			-- 行番号
						0,							-- エラー結果(0:正常 1:警告 2:異常)
						'XXX',						-- オラクルエラーコード
						P_GF01ARG(I).TABLESPACE_NAME || ',' || P_GF01ARG(I).NAME_JA );	-- オラクルエラーメッセージ

	END LOOP;
		P_KEKKA := 1;

	EXCEPTION
		WHEN HYBS.TOO_MANY_ERRORS THEN
			HYBS.SET_LIMITOVER(P_ERRMSGS);
			P_KEKKA := 2;
		WHEN OTHERS THEN
--			オラクルエラー。
			HYBS.SET_ERRMSGS(P_ERRMSGS,				-- エラーメッセージ配列
						P_SYSARGS(I).NO,			-- 行番号
						2,							-- エラー結果(0:正常 1:警告 2:異常)
						to_char(SQLCODE),			-- オラクルエラーコード
						substrb( SQLERRM,1,100 ));	-- オラクルエラーメッセージ
			P_KEKKA := 2;
	END INSERT_GF01;

END INSERT_GF01_PKG;
/
SHOW ERROR;
