PRINT文出力
PL/SQLでDEBUG文を出力する方法です。
DBMS_OUTPUT.ENABLE(100000);--出力のバッファサイズ str := 'ST ' || to_char(sysdate, 'yyyy/mm/dd hh24:mi:ss'); DBMS_OUTPUT.PUT_LINE(str); sqlplus でDBMS_OUTPUT.PUT_LINEを実行する場合は、 set serveroutput on にしておく必要あり。
ファンクションの実行
sqlplus におて、プロシージャ、関数の実行方法です。
プロシージャ: SQL> execute proc_a('12'); 関数: SQL> variable a number; SQL> execute :a := func_a('12'); SQL> print :a
カーソルの使い方
--カーソルの宣言 CURSOR CUR_EQUIP IS SELECT AD.EQUIP_CLASS, AD.EQUIP_PLACE, DECODE(PR.SLS_MDL_YEAR, '1', AD.SLS_MDL_YEAR, NULL) AS SLS_MDL_YEAR FROM TBL_M_EQUIP_PRIORITY PR, TBL_M_ADDITIONAL_EQUIP AD WHERE PR.IMP_CD = P_IMP_CD ORDER by PR.PRIORITY; --カーソル変数の宣言 REC_EQUIP CUR_EQUIP%ROWTYPE; --カーソルオープン OPEN CUR_EQUIP; --LOOPでFETCH LOOP FETCH CUR_EQUIP INTO REC_EQUIP; EXIT WHEN CUR_EQUIP%NOTFOUND; 処理・・・ END LOOP; --カーソルクローズ CLOSE CUR_EQUIP;
UTL_FILE
テキストファイルの読み書きを行う。
■ファイルオープン
fopen( p_Dir, p_FileName, モード)
p_Dir:
p_FileName:
モード:r yo
返値:ファイルハンドル
■書き込み
PUT_LINE(ファイル・ハンドル, ‘書込み文字列’)
PUT
NEW_LINE
■読み込み
GET_LINE(ファイル・ハンドル, 文字列変数 ,
‘1行当りの最大文字数’) ;
■クローズ
FCLOSE(ファイル・ハンドル) ;
エラー
エラー | 内容 |
INVALID_PATH | ディレクトリ・オブジェクトがありません |
INVALID_MODE | ファイル・オープンのパラメータが間違っています |
INVALID_FILEHANDLE | ファイル・ハンドルが無効です |
NVALID_OPERATION | ファイル・オープンに失敗しました もしくは、要求した操作が出来ません |
NTERNAL_ERROR | PL/SQL 内で未指定エラーが発生しました |
INVALID_MAXLINESIZE | FOPEN の MAX_LINESIZE 値が無効です 有効範囲:1~32767 |
INVALID_FILENAME | ファイル名が間違っています |
INVALID_OFFSET | ファイルの最終ポイント以降に対して、検索などの操作を行おうとしています |
ACCESS_DENIED | アクセス許可が拒否されました |
FILE_OPEN | ファイルがオープンしているため失敗しました (別プロセスが、ファイルを使用しています) |
READ_ERROR | 読込み操作中に OS 側でエラーがありました |
WRITE_ERROR | 書込み操作中に OS 側でエラーがありました |
DELETE_FAILD | ファイルの削除に失敗しました |
RENAME_FAILD | ファイルの名前変更に失敗しました |
CHARSETMISMATCH | FOPEN_NCHAR でオープンしたファイルに対して 、 NON_CHAR ファンクション( PUTF 、GET_LINE など)を実行しようとしています |
コメント