例外のテスト


  TOO_MANY_ROWS



SELECT INTO文 は、テーブルの内容を取り出す為の有効な記述方法ですが、
変数への代入を行う為、行が複数戻されると例外が発生します

  
select
	プロシージャ名,
	更新日
into
	WK_プロシージャ名,
	WK_更新日
from PROC_LIST;

RET_VALUE := WK_プロシージャ名 || '|' || WK_更新日;
RETURN RET_VALUE;
  

  
FUNCTION ERR_TEST_02
(
	PM_STRING IN VARCHAR2	/* 引数の定義 */
)
RETURN VARCHAR2	/* 戻り値の定義 */

/**********************************************************/
/* 変数の定義 */
/**********************************************************/
AS
	RET_VALUE	VARCHAR2(2000);
	WK_VALUE	VARCHAR2(2000);
	WK_プロシージャ名 PROC_LIST.プロシージャ名%TYPE;
	WK_更新日 PROC_LIST.更新日%TYPE;

/**********************************************************/
/* 処理開始 */
/**********************************************************/
BEGIN
	select
		プロシージャ名,
		更新日
	into
		WK_プロシージャ名,
		WK_更新日
	from PROC_LIST;

	RET_VALUE := WK_プロシージャ名 || '|' || WK_更新日;
	RETURN RET_VALUE;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		RET_VALUE := '例外発生:'||SQLCODE||':'||SQLERRM;
		RETURN RET_VALUE;
END;
  

↓正しく実行する為に条件を追加
  
FUNCTION ERR_TEST_02
(
	PM_STRING IN VARCHAR2	/* 引数の定義 */
)
RETURN VARCHAR2	/* 戻り値の定義 */

/**********************************************************/
/* 変数の定義 */
/**********************************************************/
AS
	RET_VALUE	VARCHAR2(2000);
	WK_VALUE	VARCHAR2(2000);
	WK_プロシージャ名 PROC_LIST.プロシージャ名%TYPE;
	WK_更新日 PROC_LIST.更新日%TYPE;

/**********************************************************/
/* 処理開始 */
/**********************************************************/
BEGIN
	select
		プロシージャ名,
		更新日
	into
		WK_プロシージャ名,
		WK_更新日
	from PROC_LIST
		where プロシージャ名 = PM_STRING;

	RET_VALUE := WK_プロシージャ名 || '|' || WK_更新日;
	RETURN RET_VALUE;

/**********************************************************/
/* 一番外側のブロックの例外処理 */
/**********************************************************/
EXCEPTION
	WHEN OTHERS THEN
		RET_VALUE := '例外発生:'||SQLCODE||':'||SQLERRM;
		RETURN RET_VALUE;
END;
  











  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ