ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
PL/SQL 取引データ作成
日時: 2008/07/23 09:48
名前: lightbox



プロシージャ名 : 取引データ作成
拡張子:
PROCEDURE 取引データ作成
(
	PM_NUMBER IN NUMBER
)
AS 
列名型値型定数型名最大桁精度スケールNULL主キーデフォルト型説明備考
1取引区分129adCharVARCHAR22N1文字列値
2伝票番号131adNumericNUMBER80N2固定精度およびスケールの正確な数値
3131adNumericNUMBER20N3固定精度およびスケールの正確な数値
4取引日付135adDBTimeStampDATE日付/時刻スタンプ
5取引先コード129adCharVARCHAR24文字列値
6商品コード129adCharVARCHAR24文字列値
7数量131adNumericNUMBER15固定精度およびスケールの正確な数値
8単価131adNumericNUMBER15固定精度およびスケールの正確な数値
9金額131adNumericNUMBER15固定精度およびスケールの正確な数値
10更新済129adCharVARCHAR21文字列値
メンテナンス

引数の値ぶんのループを作成 ( No.1 )
日時: 2008/07/23 09:59
名前: lightbox


日時: 2008/07/23 09:59
名前: lightbox
拡張子:
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		NULL;
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
引数の値ぶんの空の伝票データ( 行は1行 ) の作成 ( No.2 )
日時: 2008/07/23 10:07
名前: lightbox
拡張子:
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		INSERT INTO "取引データ"
			(
				"取引区分"
				,"伝票番号"
				,"行"
			)
		VALUES (
			'10'
			,i
			,1
		);
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
引数の値ぶんの空の伝票データ( 行は1〜4行 ) の作成 ( No.3 )
日時: 2008/07/23 10:13
名前: lightbox
拡張子:
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		TARGET_ROW := DBMS_RANDOM.VALUE(1,4);
		FOR j IN 1..TARGET_ROW LOOP
			INSERT INTO "取引データ"
				(
					"取引区分"
					,"伝票番号"
					,"行"
				)
			VALUES (
				'10'
				,i
				,j
			);
		END LOOP;
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
伝票データとして、取引日付の作成 ( No.4 )
日時: 2008/07/23 10:26
名前: lightbox
拡張子:
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		TARGET_ROW := DBMS_RANDOM.VALUE(1,4);

		TARGET_DATE := TO_DATE('2008/04/01');
		TARGET_DATE := ADD_MONTHS( TARGET_DATE, DBMS_RANDOM.VALUE(0,2) );
		TARGET_DATE := TARGET_DATE + DBMS_RANDOM.VALUE(0,30);
		TARGET_DATE := TRUNC(TARGET_DATE);

		FOR j IN 1..TARGET_ROW LOOP
			INSERT INTO "取引データ"
				(
					"取引区分"
					,"伝票番号"
					,"行"
					,取引日付
				)
			VALUES (
				'10'
				,i
				,j
				,TARGET_DATE
			);
		END LOOP;
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
取引先コード、商品コード、数量作成 ( No.5 )
日時: 2008/07/23 10:36
名前: lightbox
取引先 : 50 件 0001 〜 0050
商品 : 100 件 0001 〜 0100
数量 : 1 〜 20

拡張子:
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		TARGET_ROW := DBMS_RANDOM.VALUE(1,4);

		TARGET_DATE := TO_DATE('2008/04/01');
		TARGET_DATE := ADD_MONTHS( TARGET_DATE, DBMS_RANDOM.VALUE(0,2) );
		TARGET_DATE := TARGET_DATE + DBMS_RANDOM.VALUE(0,30);
		TARGET_DATE := TRUNC(TARGET_DATE);

		TARGET_CODE1 := LTRIM(TO_CHAR( DBMS_RANDOM.VALUE(1,50), '0000' ));

		FOR j IN 1..TARGET_ROW LOOP

			TARGET_CODE2 := LTRIM(TO_CHAR( DBMS_RANDOM.VALUE(1,100), '0000' ));
			TARGET_SU := TRUNC(DBMS_RANDOM.VALUE(1,20));

			INSERT INTO "取引データ"
				(
					"取引区分"
					,"伝票番号"
					,"行"
					,取引日付
					,取引先コード
					,商品コード
					,数量
				)
			VALUES (
				'10'
				,i
				,j
				,TARGET_DATE
				,TARGET_CODE1
				,TARGET_CODE2
				,TARGET_SU
			);
		END LOOP;
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス
完成 ( No.6 )
日時: 2008/07/23 10:56
名前: lightbox
拡張子:
PROCEDURE 取引データ作成
(
	PM_NUMBER IN NUMBER
)

/**********************************************************/
/* 変数の定義 */
/**********************************************************/
AS
	RET_VALUE	VARCHAR2(2000);
	WK_VALUE	VARCHAR2(2000);
	TARGET_ROW NUMBER;
	TARGET_DATE DATE;
	TARGET_CODE1 VARCHAR2(4);
	TARGET_CODE2 VARCHAR2(4);
	TARGET_SU NUMBER;
	TARGET_TANKA NUMBER;

/**********************************************************/
/* 処理開始 */
/**********************************************************/
BEGIN
	DBMS_OUTPUT.PUT_LINE('デバッグ:開始');

	/************************************************/
	/* 社員マスタと同一フォーマットの */
	/* 社員テーブルをクリア */
	/************************************************/
	WK_VALUE := 'TRUNCATE TABLE "取引データ"';
	EXECUTE IMMEDIATE WK_VALUE;

	/************************************************/
	/* ループを引数の回数ぶん実行する */
	/************************************************/
	FOR i IN 1..PM_NUMBER LOOP
		TARGET_ROW := TRUNC(DBMS_RANDOM.VALUE(1,5));

		TARGET_DATE := TO_DATE('2008/04/01');
		TARGET_DATE := ADD_MONTHS( TARGET_DATE, TRUNC(DBMS_RANDOM.VALUE(0,3)) );
		TARGET_DATE := TARGET_DATE + DBMS_RANDOM.VALUE(0,30);
		TARGET_DATE := TRUNC(TARGET_DATE);

		TARGET_CODE1 := LTRIM(TO_CHAR( TRUNC(DBMS_RANDOM.VALUE(1,51)), '0000' ));

		FOR j IN 1..TARGET_ROW LOOP

			TARGET_CODE2 := LTRIM(TO_CHAR( TRUNC(DBMS_RANDOM.VALUE(1,101)), '0000' ));
			TARGET_SU := TRUNC(DBMS_RANDOM.VALUE(1,21));

			SELECT
				販売単価
			INTO
				TARGET_TANKA
			FROM 商品マスタ
			WHERE
				商品コード = TARGET_CODE2;

			INSERT INTO "取引データ"
				(
					"取引区分"
					,"伝票番号"
					,"行"
					,取引日付
					,取引先コード
					,商品コード
					,数量
					,単価
					,金額
				)
			VALUES (
				'10'
				,i
				,j
				,TARGET_DATE
				,TARGET_CODE1
				,TARGET_CODE2
				,TARGET_SU
				,TARGET_TANKA
				,TARGET_SU * TARGET_TANKA
			);
		END LOOP;
	END LOOP;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM);
END;
このアーティクルの参照用URLをクリップボードにコピー メンテナンス