2014年12月18日木曜日
オラクル ロック解除
データをテーブルにインサートするとき、反応がない。
SQL自体は問題ないことを確認したあと、もしかしてロックのせいかなと思っている。
ロックとは、ある処理がコミットされずに、その後に続く処理が待ち状態になってしまっていること。
対応手順は下記となります。
SQL> SELECT SID, SERIAL# FROM V$SESSION
2 WHERE SID IN (
3 SELECT SID FROM V$LOCK
4 WHERE TYPE IN ('TM','TX')
5 );
SID SERIAL#
---------- ----------
30 49247
74 47697
SQL> alter system kill session '30,49247';
システムが変更されました。
SQL>
SQL> alter system kill session '74,47697';
システムが変更されました。
SQL> SELECT SID, SERIAL# FROM V$SESSION
2 WHERE SID IN (
3 SELECT SID FROM V$LOCK
4 WHERE TYPE IN ('TM','TX')
5 );
レコードが選択されませんでした。
SQL>
PL/SQLプロシージャのコンパイル時フリーズになる
PL/SQLプロシージャのコンパイル時フリーズになる
フリーズしたセッションが応答待ちのままになっているためです。
停止するセッションを識別するには、フリーズしてしまったセッションの索引番号とシリアル番号を指定します。
セッションのシステム識別子(SID)とシリアル番号を識別するには、V$SESSION動的パフォーマンス・ビューを問い合せます。
SELECT
SID ,SERIAL# ,STATUS
FROM
V$SESSION
WHERE
USERNAME = 'LEON_TENANT';
SID SERIAL# STATUS
---------- ---------- --------
40 1 INACTIVE
42 2493 ACTIVE
ALTER SYSTEM KILL SESSION '42,2493';
再度コンパイルを実施すると、無事にコンパイルことはできました。
フリーズしたセッションが応答待ちのままになっているためです。
停止するセッションを識別するには、フリーズしてしまったセッションの索引番号とシリアル番号を指定します。
セッションのシステム識別子(SID)とシリアル番号を識別するには、V$SESSION動的パフォーマンス・ビューを問い合せます。
SELECT
SID ,SERIAL# ,STATUS
FROM
V$SESSION
WHERE
USERNAME = 'LEON_TENANT';
SID SERIAL# STATUS
---------- ---------- --------
40 1 INACTIVE
42 2493 ACTIVE
ALTER SYSTEM KILL SESSION '42,2493';
再度コンパイルを実施すると、無事にコンパイルことはできました。
2014年12月3日水曜日
resin deploy timeout 解消
問題:
>resin deploy imart.war
java.lang.IllegalStateException: QueryFutureCallback[] future timeout: 120000ms
解決方法:
%resin_home%/resin.properties のdependency_check_interval を-1に変更する。
# dependency_check_interval : 5m
dependency_check_interval : -1
resinを再起動する。
resin deploy を実施する。
>resin deploy imart.war
java.lang.IllegalStateException: QueryFutureCallback[] future timeout: 120000ms
解決方法:
%resin_home%/resin.properties のdependency_check_interval を-1に変更する。
# dependency_check_interval : 5m
dependency_check_interval : -1
resinを再起動する。
resin deploy を実施する。
2014年12月2日火曜日
Oracleスキーマ単位にExport
1.準備
C:\verup>sqlplus system/password@127.0.0.1:8521/orcl
SQL*Plus: Release 11.2.0.1.0 Production on 火 12月 2 10:00:58 2014
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
に接続されました。
SQL>
SQL>
ダンプファイル(Exportしたファイルのこと)とログを格納するディレクトリを作成。
SQL> create directory dumpdir as 'c:\verup\dump';
ディレクトリが作成されました。
SQL> create directory logdir as 'c:\verup\log';
ディレクトリが作成されました。
Oracleのユーザにディレクトリに読み書き権限を与える。
SQL>grant read,write on directory dumpdir to biz_one;
権限付与が成功しました。
※上記のコマンドを実行しないと、ORA-39070が発生しますよ。
ORA-39070: ログ・ファイルをオープンできません。
ディレクトリ・オブジェクトの確認
SQL>set pagesize 0;
SQL>select * from dba_directories;
2.Exportコマンドを投入
expdp dbuser/password@orcl schemas=biz_one directory=dumpdir dumpfile=biz_one_20141202.DMP
3.Import コマンドで導入
impdp new_user/password@orcl directory=dumpdir remap_schema=biz_one:biz_two dumpfile=biz_one_20141202.DMP
4.export 時と異なるスキーマ、異なる表領域に import
impdp user/password@orcl directory=dumpdir remap_schema=old_schema:new_schema dumpfile=xxxx.DMP remap_tablespace=old_tablespace:new_tablespace
2014年11月20日木曜日
よく使うvagrantのコマンド
まず、official adressは下記です。
http://www.vagrantbox.es/
□vagrant へ仮想マシンboxを追加
vagrant box add windows8 C:\xxxxx\env\vagrant-windows8.1-update1-ie11-ff24esr.box
□仮想マシンを初期化
vagrant init windows8
□仮想マシンを立ち上げ
vagrant up
□仮想マシンをshutdown
vagrant halt
スナップショット関連コマンド
vagrant snapshot take <スナップショット名> #指定したスナップショット名にてスナップショットを作成します。
vagrant snapshot list #スナップショットの一覧を取得します。
vagrant snapshot go <スナップショット名> #指定したスナップショットの状態に移行します。
vagrant snapshot delete <スナップショット名> #スナップショットを削除します。
vagrant snapshot back #最新のスナップショットに戻ります。
iap 画面は真っ白になる
■基盤
intra-mart Accel Platform Advanced Edition 2014 Spring(Granada)-8.0.7
■現象
deployしたimartプロジェクトにIEでアクセスするとき、
ログイン画面は表示されます。
ユーザIDとパスワードを入力して、ログインボタンを押すと、IEのアドレス欄は
下記のような表示している。
http://xx.x.xxx.xxx:8080/imart/certification
画面は真っ白になっています。
FireFoxにて、同じ現象は発見されていません。
■解決方法
インターネットオプション→セキュリティ→信頼済みサイト
アクセスしようのアドレスを信頼済みサイトに追加すれば、解決できるそうです。
intra-mart Accel Platform Advanced Edition 2014 Spring(Granada)-8.0.7
■現象
deployしたimartプロジェクトにIEでアクセスするとき、
ログイン画面は表示されます。
ユーザIDとパスワードを入力して、ログインボタンを押すと、IEのアドレス欄は
下記のような表示している。
http://xx.x.xxx.xxx:8080/imart/certification
画面は真っ白になっています。
FireFoxにて、同じ現象は発見されていません。
■解決方法
インターネットオプション→セキュリティ→信頼済みサイト
アクセスしようのアドレスを信頼済みサイトに追加すれば、解決できるそうです。
2014年11月14日金曜日
iap環境でSQLログを出す方法
□修正配置ファイルファイル
\resin\webapps\imart\WEB-INF\conf\log\biz_logger_sql.xml
■修正内容
出力レベルを「DEBUG」に変更する。
--------------------------
<level value="DEBUG" />
--------------------------
2014年10月22日水曜日
ニュース勉強2014/10/21
ニュース 2014/10/21 毎日新聞
<千代田線>根津駅で線路に転落 女性死亡、男児軽いけが
21日午後7時35分ごろ、東京都文京区根津1の東京メトロ千代田線の根津駅で、代々木上原発柏行きの普通電車(10両編成)が進入する際、30代とみられる女性と1歳ぐらいの男児が線路内に転落し、電車と衝突した。近くの病院に搬送され、女性は間もなく死亡したが、
男児は車両と線路の隙間(すきま)に入り込み、顔に軽傷を負っただけで命に別条はない。
警視庁本富士署は女性と男児が親子で、女性が無理心中を図った可能性もあるとみて、身元確認などを進めている。
東京メトロによると、運転士が「女性が子どもを抱えて飛び込んできた」と話しているという。
千代田線は北千住−湯島間の上下線が約1時間ストップし、約6万8000人に影響が出た。
単語:
根津 ねづ
柏 かしわ
湯島 ゆしま
衝突 しょうとつ
搬送 はんそう
無理心中 むりしんじゅう 同意しない相手を殺して自分も自殺すること。
→無理心中を図る
なんで命までを捨てって、そんなことするの。
2014年9月18日木曜日
ORACLEのEXPとIMP
エクスポート。
DBの情報は以下を前提としています。
ユーザ名
USER
パスワード
PASS
元サーバのTNSNAME
TNSDB
先サーバのTNSNAME
TNSNEWDB
EXP
EXP USER/PASS@TNSDB BUFFER=409600 FILE=EXPDAT0806.DMP LOG=EXPLOG0806.LOG OWNER=USER
必ず指定するパラメータは以下。
USERID
USER/PASS@TNSDB の部分
BUFFER
FILE
ファイル名の指定のみだと、実行時のフォルダに配置される。
Windowsを例にとると「C:\>EXP ~」とした場合、C:\ 直下にダンプファイルが作成される。
あくまでも EXP を実行するPC(もしくはサーバ)にダンプファイルが作成される。
LOG
FILE パラメータとファイル配置は同様。
エクスポート時のエラー確認用。
状況に応じて変更するパラメータは以下。
OWNER
特定のスキーマを抽出する際に使用。
FULL=Y
全て(SYSTEMやSYSを含む)のDBを取得する際に使用。
パラメータのヘルプ(「EXP -HELP」を実行)は、以下の通り。
Export: Release 9.2.0.1.0 - Production on 金 Aug 6 16:52:43 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
EXPを入力するとエクスポートがパラメータ入力を要求します。
コマンドに続いてユーザー名/パスワードを指定してください:
入力例: EXP SCOTT/TIGER
また、EXPコマンドの後に引数を入力することによって、エクスポートの実行を
制御できます。パラメータの指定にはキーワードを使用します:
形式 : EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
入力例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
または TABLES=(T1:P1,T1:P2)、ただしT1がパーティション表の場合。
USERIDは、コマンドラインの最初のパラメータである必要があります。
キーワード 摘要(デフォルト) キーワード 摘要(デフォルト)
--------------------------------------------------------------------------
USERID ユーザー名/パスワード FULL ファイル全体のエクスポート(N)
BUFFER データ・バッファのサイズ OWNER 所有者のユーザー名リスト
FILE 出力ファイル(EXPDAT.DMP) TABLES 表名のリスト
COMPRESS 1エクステントにインポート(Y) RECORDLENGTH IOレコードの長さ
GRANTS 権限のエクスポート(Y) INCTYPE 増分エクスポートの種類
INDEXES 索引のエクスポート(Y) RECORD 増分エクスポートの追跡(Y)
DIRECT ダイレクト・パス(N) TRIGGERS トリガのエクスポート(Y)
LOG 画面出力のログ・ファイル STATISTICS オブジェクトの分析(ESTIMATE)
ROWS データ行のエクスポート(Y) PARFILE パラメータ・ファイル名
CONSISTENT 表間の一貫性(N) CONSTRAINTS エクスポート制約(Y)
OBJECT_CONSISTENT オブジェクトのエクスポート中のみに読み込むトランザクション設定(N)
FEEDBACK x行ごとに進行状況を表示(0)
FILESIZE 各ダンプ・ファイルの最大サイズ
FLASHBACK_SCN セッションのスナップショットを戻すために使用するSCN
FLASHBACK_TIME 指定した時間に最も近いSCN取得時間
QUERY 表のサブセットのエクスポートに使用するSelect句
RESUMABLE 領域関連のエラーが発生すると一時停止します(N)
RESUMABLE_NAME 再開可能文の指定に使用するテキスト文字列
RESUMABLE_TIMEOUT RESUMABLEの待機時間
TTS_FULL_CHECK TTSの依存性検査の全部または一部を実行する
TABLESPACES エクスポートする表領域のリスト
TRANSPORT_TABLESPACE トランスポータブル表領域のメタデータのエクスポート(N)
TEMPLATE iASモードのエクスポートを起動するテンプレート名
エクスポートは警告なしで正常終了しました。
IMP
インポート
手順としては
スキーマ(ユーザ)を作成する。
作成したスキーマへ、移行したいスキーマ分をインポート。
となります。
エクスポートと同じユーザの例は、以下の通り
IMP USER/PASS@TNSNEWDB FROMUSER=USER TOUSER=USER IGNORE=Y COMMIT=Y BUFFER=409600 FILE=EXPDAT0806.DMP LOG=IMPLOG0806.LOG
必ず指定するパラメータは以下。
USERID
USER/PASS@TNSDB の部分
FROMUSER
EMP で取得した際に、ダンプに入っているユーザ。(OWNERで指定したのであればそのユーザ)
TOUSER
移行先のスキーマ名
IGNORE
表領域名が違ったりすると、エラーとなってインポートできないのを防ぐ。
COMMIT
BUFFER
FILE
LOG
パラメータのヘルプ(「IMP -HELP」を実行)は、以下の通り。
Import: Release 9.2.0.1.0 - Production on 金 Aug 6 17:13:35 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
IMPを入力するとインポートがパラメータ入力を要求します。
コマンドに続いてユーザー名/パスワードを指定してください:
入力例: IMP SCOTT/TIGER
また、IMPコマンドの後に引数を入力することによって、インポートの実行を
制御できます。パラメータの指定にはキーワードを使用します:
形式 : IMP KEYWORD=value または KEYWORD=(value1,value2,...,valueN)
入力例: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
または TABLES=(T1:P1,T1:P2)、ただしT1がパーティション表の場合。
USERIDは、コマンドラインの最初のパラメータである必要があります。
キーワード 内容(デフォルト値) キーワード 内容(デフォルト値)
--------------------------------------------------------------------------
USERID ユーザー名/パスワード FULL 全ファイルをインポート(N)
BUFFER データ・バッファ・サイズ FROMUSER 所有するユーザーのリスト
FILE 入力ファイル(EXPDAT.DMP) TOUSER ユーザー名リスト
SHOW ファイル内容のリスト(N) TABLES 表名のリスト
IGNORE 作成時エラー無視(N) RECORDLENGTH ファイルのI/Oレコード長
GRANTS 権限のインポート(Y) INCTYPE 増分インポートの種類
INDEXES 索引のインポート(Y) COMMIT 配列挿入のコミット(N)
ROWS データ行のインポート(Y) PARFILE パラメータ・ファイル名
LOG 画面出力のログ・ファイル CONSTRAINTS 制約のインポート(Y)
DESTROY 表領域データ・ファイルの上書き(N)
INDEXFILE 指定ファイルへの表/索引情報の書込み
SKIP_UNUSABLE_INDEXES 使用不能な索引のメンテナンスをスキップ(N)
FEEDBACK x行ごとに進行状況を表示(0)
TOID_NOVALIDATE 指定したタイプIDの妥当性チェックをスキップ
FILESIZE 各ダンプ・ファイルの最大サイズ
STATISTICS 計算済統計情報のインポート(常時)
RESUMABLE 領域関連のエラーが発生すると一時停止します(N)
RESUMABLE_NAME 再開可能文の指定に使用するテキスト文字列
RESUMABLE_TIMEOUT RESUMABLEの待機時間
COMPILE プロシージャ、パッケージおよび関数のコンパイル(Y)
STREAMS_CONFIGURATION インポートは一般的なメタデータをストリームします(Y)
STREAMS_INSTANITATION インポートはインスタンス化メタデータをストリームします(N)
次のキーワードは、トランスポータブル表領域のみに適用されます。
TRANSPORT_TABLESPACEは、インポートするトランスポータブル表領域メタデータ(N)。
TABLESPACESは、データベース内に移送される表領域。
DATAFILESは、データベース内に移送されるデータ・ファイル
TTS_OWNERSは、トランスポータブル表領域セット内にデータを所有するユーザー。
■EXP-00091: 不審な統計をエクスポートしています。
Oracleのexpコマンドで、以下の警告メッセージが表示されることがあります。
EXP-00091: 不審な統計をエクスポートしています。
このメッセージが表示される場合、以下のケースが想定されます。
テーブル全体ではなく、一部のテーブルのみエクスポートしている
データベースの文字コードと環境変数NLS_LANGが一致しない
statistics=noneを指定していない場合は指定したテーブルの統計情報も一緒にEXPORTされますが、統計上は元々テーブル全体の情報を保持しています。 だから、テーブルの一部を取り出す場合にはEXPORTしたテーブルの統計情報と内容が合わない場合があるので、EXP-00091が発生する。
MyKnowledge SE社員: show ~ Oracle export statistics 不審な統計 はてなブックマーク - MyKnowledge SE社員: show ~ Oracle export statistics 不審な統計
EXP-00091が表示される場合の対処方法
EXP-00091が表示される場合は統計情報をエクスポートしないよう、statistics=noneを指定することで、警告メッセージを表示しないようにします。
exp ユーザID/パスワード tables=テーブル名 statistics=none
エクスポートしたデータをインポートする際、統計情報はインポートされないので、手動で統計情報を再構築すると良いです。
2014年9月12日金曜日
nexusのインストール
□入手
http://download.sonatype.com/nexus/oss/nexus-2.9.1-02-bundle.zip
□ロカールに有るフォルダに展開する。
c:\project\nexus
□システム変数を作ります。
変数名 NEXUS_HOME
変数値 c:\project\nexus
%NEXUS_HOME%\bin をパスに追加する。
□Nexusをインストールする。
管理者でコマンドプロンプト画面を開く、
cd %NEXUS_HOME%\bin
nexus install
下記のメッセージはでるはず
install
wapper | nexus installed.
□Nexusを起動する。
cd %NEXUS_HOME%\bin
nexus start
Nexusはデフォルト設定ではポート8081で動作しています。
http://127.0.0.1:8081/nexus でトップ画面が出たら、起動完了。
画面で右上のLoginをクリックすると、ログイン画面が表示されます。
初期化のユーザとパスワードは
admin /admin123
そのた参考資料
https://terasolunaorg.github.io/guideline/public_review/Appendix/Nexus.html
2014年7月22日火曜日
SQLPLUS コマンドで実行した結果をファイルに保存したいって
SPOOL OFF
SPOOL OUT
短縮形は SPO です。
SQL> spool C:\project\insert.log
→ SPOOL filname の形式が出力開始となる。
SQL> @C:\project\insert.sql
→ SQLを実行する。
SQL>SPOOL OUT
→SPOOL OFF が出力停止設定となる。
C:\project\insert.log を開いてみると
SQL> @C:\project\insert_sql.sql
1行が作成されました。
1行が作成されました。
ERROR:
ORA-00972: 識別子が長すぎます。
1行が作成されました。
1行が作成されました。
SQL> spool out
あら、エラーが出ちゃた。
- コマンド
SPOOL OFF
SPOOL OUT
短縮形は SPO です。
- 例
SQL> spool C:\project\insert.log
→ SPOOL filname の形式が出力開始となる。
SQL> @C:\project\insert.sql
→ SQLを実行する。
SQL>SPOOL OUT
→SPOOL OFF が出力停止設定となる。
C:\project\insert.log を開いてみると
SQL> @C:\project\insert_sql.sql
1行が作成されました。
1行が作成されました。
ERROR:
ORA-00972: 識別子が長すぎます。
1行が作成されました。
1行が作成されました。
SQL> spool out
あら、エラーが出ちゃた。
2014年6月24日火曜日
ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした
問題記述
PL/SQL PACKAGE再コンパイル後、
ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした
というエラーメッセージが出された。
解決方法
AP再起動
パッケージ等が起動されたセッションは、その時の最新更新日時を保持
していて、起動時にパッケージ等の最新更新日時と比較します。従って、セッ
ションを保持したまま、別セッションでパッケージ等が更新された場合、セッ
ションが保持しているパッケージ等の情報が古いと判断されエラーが発生しま
す。
PL/SQL PACKAGE再コンパイル後、
ORA-06508: PL/SQL: コールしているプログラム単位が見つかりませんでした
というエラーメッセージが出された。
解決方法
AP再起動
パッケージ等が起動されたセッションは、その時の最新更新日時を保持
していて、起動時にパッケージ等の最新更新日時と比較します。従って、セッ
ションを保持したまま、別セッションでパッケージ等が更新された場合、セッ
ションが保持しているパッケージ等の情報が古いと判断されエラーが発生しま
す。
2014年6月13日金曜日
BIZ用語
■相見積(あいみつ)
複数の取引先・業者から見積もりを取り、条件のいいところを選ぶこと
■赤黒、赤黒処理 (あかくろしょり)
会計情報を訂正する方法の1つ。いったん計上した金額を修正したい場合に、元の金額を直接修正するのではなく、
元の金額を帳消しにするマイナスの金額(赤)と、正しいプラスの金額(黒)の2つを新たに計上する。
これにより訂正の記録を残すことができる。 伝票であれば、誤りがあった元の伝票を書き換えずに、
元の書類の内容を打ち消す伝票と、差替え伝票の2枚を起票する。このうち、打ち消す伝票を「赤伝票」、差替え伝票を「黒伝票」とよぶ。
■アポ (appointment)
アポを取ってくれ
■一件一葉(いっけんいちよう)
一件ごとに一枚の書類を作る、の意味です。
■エスカレーション
自分が解決できない問題を自分より上の人間に任せること。
もし無理なら、エスカレーションにしよう。
■落とし所(おとしどころ)
もめ事や話し合いの妥協点。双方が納得する決着点。
交渉の落とし所を探る。
■サチる(saturate) : 飽和する、収束(しゅうそく)する の意味
仕様変更は増え続けて、サチらないですね。
■サマる(summary) :要約する、まとめる の意味
資料をサマって、提出してください。
■棚卸(たなおろし)
在庫の数を数えること
■デポ(depot)
倉庫、貯蔵所
■歩留まり(ぶどまり)
加工する場合の、使用原料に対する製品の出来高の比率。
歩留まりが良い。
歩留まりが悪い。
■ロハ
無料
今回の変更ロハでいいの?
■FYI
For Your Information(ご参考まで)
普通に言えば、文書引用あるいは転送の場合、FYIと書きます。
複数の取引先・業者から見積もりを取り、条件のいいところを選ぶこと
■赤黒、赤黒処理 (あかくろしょり)
会計情報を訂正する方法の1つ。いったん計上した金額を修正したい場合に、元の金額を直接修正するのではなく、
元の金額を帳消しにするマイナスの金額(赤)と、正しいプラスの金額(黒)の2つを新たに計上する。
これにより訂正の記録を残すことができる。 伝票であれば、誤りがあった元の伝票を書き換えずに、
元の書類の内容を打ち消す伝票と、差替え伝票の2枚を起票する。このうち、打ち消す伝票を「赤伝票」、差替え伝票を「黒伝票」とよぶ。
■アポ (appointment)
アポを取ってくれ
■一件一葉(いっけんいちよう)
一件ごとに一枚の書類を作る、の意味です。
■エスカレーション
自分が解決できない問題を自分より上の人間に任せること。
もし無理なら、エスカレーションにしよう。
■落とし所(おとしどころ)
もめ事や話し合いの妥協点。双方が納得する決着点。
交渉の落とし所を探る。
■サチる(saturate) : 飽和する、収束(しゅうそく)する の意味
仕様変更は増え続けて、サチらないですね。
■サマる(summary) :要約する、まとめる の意味
資料をサマって、提出してください。
■棚卸(たなおろし)
在庫の数を数えること
■デポ(depot)
倉庫、貯蔵所
■歩留まり(ぶどまり)
加工する場合の、使用原料に対する製品の出来高の比率。
歩留まりが良い。
歩留まりが悪い。
■ロハ
無料
今回の変更ロハでいいの?
■FYI
For Your Information(ご参考まで)
普通に言えば、文書引用あるいは転送の場合、FYIと書きます。
2014年6月11日水曜日
PL/SQLの開発とデバッグ
Oracle SQL Developerを使用したPL/SQLの開発とデバッグ
Oracleの手順書、メモにします。
http://www.oracle.com/webfolder/technetwork/jp/obe/db/sqldev/r30/plsql_debug_OBE/plsql_debug_otn.htm
残念ながら、権限不足でデバッグできない。 > <
Oracleの手順書、メモにします。
http://www.oracle.com/webfolder/technetwork/jp/obe/db/sqldev/r30/plsql_debug_OBE/plsql_debug_otn.htm
残念ながら、権限不足でデバッグできない。 > <
2014年6月10日火曜日
sqlplus ストアドプロシージャの実行
■コマンド execute
①OUT引数がない時
execute(またexec) プロシージャ名(引数1,引数2,・・)
②OUT引数がある時
VAR v_out NUMBER;
execute(またexec) プロシージャ名(引数1,引数2,・・ :v_out );
例:
SQL>
SQL> variable v_out NUMBER;
SQL> execute main_proc('引数1', '引数2', :v_out);
SQL> print v_out;
SQL>
[PLS-00201: 識別子V_OUTを宣言してください。]が表示された時、v_out 前に、[:]が付いてるかどうか、確認して下さい。
■SERVEROUTPUT は DBMS_OUTPUT による PL/SQL の標準出力を非表示にするか、出力を許可して任意にバッファサイズを設定する。
•短縮形は SERVEROUT
•デフォルト値 OFF
SET SERVEROUTPUT コマンドの構文
SET SERVEROUTPUT ON [SIZE n]
CREATE OR REPLACE function test_proc return boolean
IS
CURSOR cur_param IS
SELECT DEF_NAME
FROM NAME_DEF_LIST
WHERE NAME_DEF_CD like 'XXXX%';
name_def varchar2(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('test_proc start');
open cur_param;
loop
fetch cur_param into name_def;
exit when cur_param%notfound;
DBMS_OUTPUT.PUT_LINE('>>' || name_def);
end loop;
close cur_param;
DBMS_OUTPUT.PUT_LINE('test_proc end');
return true;
EXCEPTION
WHEN others THEN
DBMS_OUTPUT.PUT_LINE('..error..');
return false;
END;
/
メイン処理:
CREATE OR REPLACE procedure P17GK_V200_MNT_EN.test_main
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('main start');
boolean rtn;
rtn := test_proc();
DBMS_OUTPUT.PUT_LINE('return ' || rtn);
EXCEPTION
WHEN others THEN
DBMS_OUTPUT.PUT_LINE('..error..');
END;
/
①OUT引数がない時
execute(またexec) プロシージャ名(引数1,引数2,・・)
②OUT引数がある時
VAR v_out NUMBER;
execute(またexec) プロシージャ名(引数1,引数2,・・ :v_out );
例:
SQL>
SQL> variable v_out NUMBER;
SQL> execute main_proc('引数1', '引数2', :v_out);
SQL> print v_out;
SQL>
[PLS-00201: 識別子V_OUTを宣言してください。]が表示された時、v_out 前に、[:]が付いてるかどうか、確認して下さい。
■SERVEROUTPUT は DBMS_OUTPUT による PL/SQL の標準出力を非表示にするか、出力を許可して任意にバッファサイズを設定する。
•短縮形は SERVEROUT
•デフォルト値 OFF
SET SERVEROUTPUT コマンドの構文
SET SERVEROUTPUT ON [SIZE n]
CREATE OR REPLACE function test_proc return boolean
IS
CURSOR cur_param IS
SELECT DEF_NAME
FROM NAME_DEF_LIST
WHERE NAME_DEF_CD like 'XXXX%';
name_def varchar2(100);
BEGIN
DBMS_OUTPUT.PUT_LINE('test_proc start');
open cur_param;
loop
fetch cur_param into name_def;
exit when cur_param%notfound;
DBMS_OUTPUT.PUT_LINE('>>' || name_def);
end loop;
close cur_param;
DBMS_OUTPUT.PUT_LINE('test_proc end');
return true;
EXCEPTION
WHEN others THEN
DBMS_OUTPUT.PUT_LINE('..error..');
return false;
END;
/
メイン処理:
CREATE OR REPLACE procedure P17GK_V200_MNT_EN.test_main
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('main start');
boolean rtn;
rtn := test_proc();
DBMS_OUTPUT.PUT_LINE('return ' || rtn);
EXCEPTION
WHEN others THEN
DBMS_OUTPUT.PUT_LINE('..error..');
END;
/
登録:
投稿 (Atom)