S-JIS[2008-11-30/2011-01-14] 変更履歴

Oracle SQL Developer

SQL Developerは、Oracleが無償で提供しているDBアクセスツール。
Javaで作られているので、実行時にはJDKが必要。


Oracle11g

Oracle11gにはSQL Developer 1.1.3が付いている。
(Oracle11gではウィンドウアプリ版のSQL*PlusSQL*Plus Worksheetが廃止になって、代わりにSQL Developerが追加された模様)

Oracle11gクライアントをインストールする際に「管理者」か「ランタイム」を選択すると、SQL Developerもインストールされる。

起動は以下のメニューから行う。
Windowsの「スタート」→「すぺてのプログラム(P)」→「Oracle - OraClient11g_home1」→「アプリケーション開発」→「SQL Developer」


インストール

Oracleのサイトからダウンロードすることも出来る。

ダウンロードしてきたzipファイルを解凍するだけ。(インストーラーは無い)

解凍したディレクトリー内にあるsqldeveloper.exeをそのまま実行すれば起動する。


久しぶりに新バージョンをダウンロードしようとしたら、以前使ってたアカウントでは「ログインが無効です」とか出てサインオンできなかった…。[2011-01-14]
パスワードをメールで通知してもらったら、覚えていたのと同じものだったのに、なぜだ。

仕方ないので新アカウントを登録したが、アカウントはメールアドレスになったようだ。
また、パスワードは3種類以上の文字の組み合わせ(英大文字・英小文字・数字など)でないと駄目なようだ。
(エラーメッセージを見てもそんなことは分からない。不便すぎる!)


初回実行時の設定

初回実行時に、java.exeの場所を指定するダイアログが開く。
インストールされているJDKのjava.exeを指定する。

例: C:\Program Files\Java\jdk1.6.0\bin\java.exe


バージョン2.1.1のQL Developerを実行したら、エラーのダイアログが出た。[2011-01-14]
メッセージは「Unable to create an instance of the Java Virtual Machine Located at path: C:\Program Files\Java\jdk1.6.0_22\jre\bin\client\jvm.dll」。

なんでも、起動時のJavaVMのヒープが足りなくてこのようなエラーが出るらしい。
(インストールしたディレクトリーの直下にあるsqldeveloper.exeでなく、「インストール場所\sqldeveloper\bin」の下にあるsqldeveloper.exeをコマンドプロンプトから実行するとエラー原因が表示される)
「インストール場所\sqldeveloper\ide\bin\ide.conf」というファイルのAddVMOptionを640Mから512Mくらいに下げると起動できる。

#AddVMOption -Xmx640M
AddVMOption -Xmx512M
AddVMOption -Xms128M

参考: seraphyさんのOracle SQL Developer が起動できない場合の設定変更


ライブラリー設定

SQL Developerを起動すると、下部の「Logging Page」にエラーメッセージが出ていて気になる。[2008-12-15]

Level Sequence Elapsed Source Message
× 96 0 o.jdbc.driver.OracleDriver Error while registering Oracle JDBC Diagnosability MBean.

これが出ていても動作上特に害は無いようだが。
これは、JDBCドライバーのバージョンがちょっと古い為に起きているものらしい。JDBCドライバーだけ別途ダウンロードしてくれば解消する。

  1. SQL Developerが使っているJDBCのjarファイルを確認する。
    1. メニューバーの「Help」→「About」でダイアログを開く。
    2. Propertiesタブを選択する。
    3. Name「jdbc.library」の値(Value)を確認する。「/C:/app/hishidama/product/11.1.0/client_1/jdbc/lib/ojdbc5.jar」とかになっているはず。そのjarファイルのバージョンを見て「11.1.0.6.0-Production」なら、古い。
  2. OracleのJDBCのダウンロードサイトから、ojdbc5.jarをダウンロードする。
    2008/12/15時点では、11.1.0(2007/12/21の11.1.0.6)が最新。
  3. 念のため、ダウンロードしてきたjarファイルのバージョンを確認する。
    ojdbc5.jarjava -jarで実行するか、jarファイル内のMETA-INF/MANIFEST.MFの中を見て、「11.1.0.6.0-Production+」というように、末尾に「+」が付いていればOK。
  4. SQL Developerが参照しているjarファイルに、ダウンロードしてきたjarファイルで上書きする。
    (SQL Developerを終了していないと上書き出来ない)
  5. 再度SQL Developerを起動すると、エラーが消えている。はず。

参考: OTN Discussion ForumsのError starting SQL Developer


設定

メニューバーの「Tools」→「Preferences」で「Preferences(選択)」ダイアログが開く。

左ツリーから選択したい項目を選び、右ペインで設定を変更する。

左ツリー 右ペイン項目 設定内容 更新日
Environment Look and Feel 「Windows」にすると、ウィンドウの外観が変わる(笑)
(SQL Developerの再起動が必要)
きっとSwingのルック&フィール機能を使用しているのだろう。
2008-11-30
Database NLS Parameters Date Format 「YYYY/MM/DD HH24:MI:SS」にしておくと、
Date型の項目を表示した際に「2008/12/14 12:34:56」の形式で表示される。
2008-12-14
Database ObjectViewer Parameters Automatically Freeze Object Viewer Windows チェックを入れると、テーブル毎に新しいタブ(シート)が開くようになる。
(個々のタブで「Freeze View」を有効にするのと同じ)
2008-12-14

データベースへの接続

まず、データベースへ接続(ログイン)する必要がある。
以下の方法で「New / Select Database Connection」ダイアログを開き、設定する。

設定名 内容
Connection Name コネクションの名前。適当に付けてよい。 ora92-scott
Username 接続するユーザー名 scott
sys as sysdba
Password パスワード  
Role defaultまたはSYSDBA default
Connection Type とりあえずBasicで。 Basic
Hostname 接続先のIPアドレス 192.168.x.y
Port 接続先のポート 1521
SID 接続するSID ora92

sysで接続したい場合、以下の様に設定する。

「Test」ボタンを押すと接続テストを行う(失敗するとエラーメッセージが表示される)。
「Connect」ボタンを押すと接続する。


既存の接続設定の確認・変更方法

既存の接続設定を確認・変更したい場合は、Connectionsツリー内のコネクション名を右クリックして「Properties」。

既存の接続設定をコピーして新しい設定を作りたい場合(ユーザーだけ変えるとか)は、以下のようにする。[2008-12-16]

  1. 「New / Select Database Connection」ダイアログを開く。
  2. 右ペインの「Connection Name」に新しい名前を入力する。
  3. その他変更したい情報を入力する。
  4. 「Save」ボタンを押すと、新しい名前で登録される。

Connectionsツリー

設定した接続情報(コネクション名)がツリー構造で表示される。
Connectionsツリーを閉じてしまった場合は、メニューバーの「View」→「Connections」で復活できる。

「Connections」ビュー内のコネクション名を右クリックして「Connect」すると、DBに接続する。(ワークシートが表示される。)
「Connections」ビュー内のコネクション名を右クリックして「Open SQL Worksheet(S)」する、もしくはツールバーのOpen SQL Worksheetボタンを押すと、ワークシートがその都度増える。[2008-12-14]

各接続情報の下には、各種オブジェクトの一覧が出る。[2008-12-16]

オブジェクト種類 内容 関連
Tables テーブル user_tables
Views ビュー user_views
Indexes インデックス(索引) user_indexes
Packages パッケージ  
Procedures プロシージャー user_procedures
Functions ファンクション(関数) user_procedures
Triggers トリガー user_triggers
Types ユーザー定義型 user_types
Sequences シーケンス(順序) user_sequences
Materialized Views
Materialized Views Logs
マテリアライズドビュー
マテリアライズドビューログ
user_mviews
Synonyms
Public Synonyms
シノニム user_synonyms
Database Links
Public Database Links
DBリンク user_db_links
Directories    
XML Schemas    
Other Users 他ユーザーのオブジェクト all_users

それぞれのオブジェクト種類名(テーブルやビュー等)の部分を右クリックすると、その種類に応じたメニューが表示される。
新規オブジェクトの作成の他、一覧表示されるオブジェクトを絞り込むフィルター機能(Apply Filter)が共通で存在する。
(このフィルターは、SQL Developerを終了して次回起動した場合にも保存されている)

また、テーブル等の一覧が開いている時にテーブル名を1文字ずつキーボードから入力することにより、(テーブル名の先頭が合致している、)一覧上のそのテーブルに移動する(その行が選択される)。[2009-01-19]
ただし、移動する度にそのテーブルのシートが開いてしまうのでちょっと不便かも…。
Freeze Viewでテーブル毎にシートを表示するように指定している場合、シートがぽこぽこ増えてしまう!)

フィルターでなく、オブジェクト名(の一部)を指定してオブジェクトを探す方法


Tablesツリー

(自分が所有者である)テーブル一覧が表示されるツリー。[2008-12-16]

個々のテーブル名をクリック(あるいはダブルクリック)することでテーブルのシート( オブジェクトビューアーウィンドウ)が開き、データを見たりテーブル構造を変更したりすることが出来る。

個々のテーブル名を右クリックするとメニューが出てテーブル構造や権限等を変更することが出来る。
変更する際には その変更の為のSQLも表示されるので、確認できて便利。

メニュー 説明
Edit 「Edit Table」ダイアログが開く。
テーブル名を変えたり項目を追加削除したりプライマリキーを変更したり、それらを行うDDLを生成したり出来る。
Table(T) Rename テーブル名を変更する。
Copy テーブルのデータを他のテーブル(新しい名前を付ける)へコピーする。(実態はCREATE TABLE〜SELECT)
他ユーザーへのコピーも可能だが、その場合は自分にCREATE ANY TABLE権限が必要。
権限を付与する方法
Drop テーブルを削除(DROP)する。
Truncate テーブル内のデータを削除(TRUNCATE)する。
Lock  
Comment  
Parallel  
Logging  
No Parallel  
Count Rows テーブル内のデータ数(count(*))を表示する。
Column(C) Comment  
Add 項目(列)を追加する。
Drop 項目(列)を削除する。
Normalize  
Constraint(A) Enable Related Foreign Keys  
Disable Related Foreign Keys  
Enable all そのテーブルに付いている全ての制約を有効にする。(PL/SQL使用)
Disable all そのテーブルに付いている全ての制約を無効にする。(PL/SQL使用)
Enable Single 制約を選択し、その制約を有効にする。
Disable Single 制約を選択し、その制約を無効にする。
Drop 制約を削除する。
Add Check チェック制約を追加する。
Add Primary Key プライマリキー制約を追加する。
Add Foreign Key 外部キー制約を追加する。
Add Unique ユニークキー制約を追加する。
Index(I) Create Index インデックス(索引)を作成する。
Drop インデックス(索引)を削除する。
Rebuild  
Privileges(P) Grant 他ユーザーに対し、該当テーブルのアクセス権限を付与する。
ただし自分に“権限を付与する”権限が必要。
sysユーザーのOther UsersツリーのTablesからテーブルを指定し、そこで権限を付与する方がいいかも。
Revoke 他ユーザーから、該当テーブルのアクセス権限を削除する。
Statistics(S) Validate Structure  
Gather Statistics  
Storage(O) Shrink Table  
Row Movement  
Compress  
No Compress  
Move  
Move Tablespace  
Cache  
No Cache  
Trigger(R) Create  
Create(PK from Sequence)  
Enable All  
Disable All  
Disable Single  
Enable Single  
Drop  
Import Data(D) Excel Excelファイルからデータをインポートする。
Export Data(X)   データをエクスポートする。出力先はファイルやクリップボード。→全オブジェクトの一括エクスポート
TEXT データをTSV(タブ区切り)形式でエクスポートする。拡張子はtxt
CSV データをCSV(カンマ区切り)形式でエクスポートする。拡張子はcsv
INSERT データをINSERT文の形式でエクスポートする。拡張子はsql
LOADER データをSQL*Loaderのコントロールファイル形式(SQL*Loaderでロードできる)でエクスポートする。拡張子はldr
XML データをXML形式でエクスポートする。拡張子はxml
HTML データをHTML形式(table・tr・tdタグを使ってブラウザーで表示できる形)でエクスポートする。拡張子はhtm
XLS データをExcelファイルにエクスポートする。拡張子はxls

Synonyms・Public Synonymsツリー

シノニム一覧が表示されるツリー。[2008-12-16]

USER_XXXやV$XXXといったテーブル(ビュー)はpublic synonymで作られているので、このツリーで参照する。
(パブリックシノニムは無茶苦茶数が多いので、フィルターを上手く使おう)


Other Usersツリー

(自分以外の)ユーザー一覧が表示されるツリー。[2008-12-16]
sysユーザーなら、各ユーザーのパスワード変更・アカウントロック解除や権限・ロールを確認・変更することが出来る。

例えばあるユーザーにCREATE ANY TABLE権限(他ユーザーのテーブルも作る事が出来る)を与えるには、以下のようにする。

  1. ユーザー名を右クリックし、「Edit User(E)」を選択して「User」ダイアログを開く。
  2. 「System Privileges」タブを選択する。
  3. 「CREATE ANY TABLE」行の「Granted」にチェックを入れる。
  4. 「適用(A)」ボタンを押すと、権限付与が実行される。(「Results」タブに実行結果が表示される)
  5. 「閉じる(C)」ボタンで終了。

自分以外のユーザーが保持しているオブジェクト(テーブル等)は、そのテーブルを参照できる権限(SELECT等)が無いと一覧に表示されない。
そのテーブルに対するSELECT権限があれば、テーブル名を右クリックして「Table(T)」→「Copy」により、テーブルをコピーしてくることが出来る。
テーブルの権限を付与する方法


実行(ワークシート)

接続すると、SQL文やコマンドが実行できるようになる。

ワークシート用ツールボタン

操作 キー 説明
Enter SQL Statement   SQL文やコマンドを入力する。その後、F9F5で実行する。
Execute Statement F9 SQL文を実行する。SQL文は1つだけ書ける。末尾のセミコロンは不要。
SELECT文の場合、実行結果はResultsに表形式で表示される。
Run Script F5 SQL文やコマンドを実行する。複数書くことが出来る。
実行結果はScript Outputにテキストで表示される。
Commit F11 コミットする。
Rollback F12 ロールバックする。
Cancel Ctrl-Q たぶん、実行が長いSQLを途中でキャンセルする。
SQL History F8 今まで実行したSQLの履歴を一覧表示するダイアログを開く。
Execute Explain Plan F6 SQLの実行計画Explainに表示する。
Autotrace F10 SQLの実行状態(?)をAutotraceに表示する。SELECT_CATALOG_ROLEが必要。
Clear Ctrl-D 書かれているSQL・コマンドを消去する。
シート 内容
Results 実行(F9)されたSELECT文の結果を表形式で表示する。
Script Output 実行(F5)されたスクリプトの結果を表示する。
Explain 実行計画を表示する。
Autotrace SQLの実行状態?を表示する。
DBMS Output DBMS_OUTPUT.put_line()の出力有無設定。
OWA Output  

Enter SQL Statement

SQL文やコマンド等の入力エリア。ここに入力した後、F9F5で実行する。

SQL*Plusのdescコマンドshow user等も実行できる。
しかしSQL*Plusの全コマンドが実行できるわけでもないらしい。


Autotrace

Autotraceを実行しようと思ったら、SELECT_CATALOG_ROLE権限を付与する必要がある。
権限が無いと、以下のようなエラーが発生する。

Failed to access V$MYSTAT.
Please obtain read catalog privilege
from your database administrator:
"grant SELECT_CATALOG_ROLE to SCOTT"

DBMS Output

DBMS_OUTPUT.put_line()の出力指定を行う。

SQL*PlusでDBMS_OUTPUT.put_line()の実行結果を表示する為には、set serveroutput onを実行しておく必要がある。
(そうでないとコンソールに結果が表示されない)

SQL DeveloperでもただDBMS_OUTPUT.put_line()を実行しただけでは、Script Outputに結果は表示されない。
しかし「set serveroutput on」を実行(F5)しようとしてもエラーになる(スキップされる)だけ…。
そこで DMBS OutputシートのEnable DBMS Outputボタンを押すと「set serveroutput on」が実行され、Script Outputにput_line()の結果が表示されるようになる。
もう一度ボタンを押すと「set serveroutput off」が実行され、表示されなくなる。

DBMS Output Enter SQL Statement Script Output
set serveroutput on
EXEC DBMS_OUTPUT.put_line('abc')
anonymous block completed
abc
serveroutputをonにする。 実行(F5)する。 結果が出力される。

テーブル操作

Connectionsツリー内のコネクション名の左側にある「+」マークをクリックするとツリーが開き、その中のTablesの下にあるテーブル名をクリックすると、テーブルのシート(オブジェクトビューアーウィンドウ)が開く。[2008-12-14]

まずテーブルの情報をタブで選ぶ。デフォルトはColumnsになっている。

Columns テーブルの項目と属性。
Data テーブルの内容(データ)。レコードを表示したり更新したり削除したり追加したり出来る。
Constraints そのテーブルに付いている制約
Grants そのテーブルにアクセスできる権限
Statistics 統計情報
Column Statistics
Triggers トリガー情報。
Dependencies そのテーブルを使っている関数・プロシージャーやビュー。
Details テーブルの詳細情報。
Partitions パーティション情報。
Indexes そのテーブルに作られているインデックス(索引)
SQL そのテーブルを生成する為のDDL(CREATE文)…だと思うのだが、いつまで待っても表示されない。

シートのテーブル名の部分で右クリックして「Split Document」を選ぶと、シートを分割することが出来る。[2008-12-17]
データを見ている場合は、分割したシートそれぞれでソートフィルター定義が出来るので、ちょっと便利。

また、上下スクロールバーの上の部分と左右スクロールバーの左の部分にちょびっとある棒をドラッグ&ドロップする(あるいはダブルクリックする)ことで、縦にも横にも分割できる。

テーブル名を右クリックして「Unsplit Document」を選ぶと、1つに戻る。


複数のタブ(ワークシート)が並んでいる時は、テーブル名を右クリックして「New Tab Group」を選ぶと、タブとタブを離せる。[2008-12-17]
2つ以上のタブ(ワークシート)の内容を同時に見られるので、ちょっと便利。

また、シート名の部分をドラッグすることによってもタブグループを分割することが出来る。
(下の方でドロップすれば上下分割になる)

分割している状態で「Collapse Tab Groups」を選ぶと 元に戻る。


Data

テーブルのデータを表示するシート(ビュー/ウィンドウ)。[2008-12-14]

Data用ツールボタン

操作 説明
Freeze View ビュー(シート)を固定する。
固定にしておくと、Connectionsツリーで別テーブルを選択した際、そのテーブルは新しいシート(ビュー)で表示される。
(固定していない場合は、そのシートが使い回される)
デフォルトで常に固定にする設定
Refresh データを再度取り直す(表示し直す)。
Insert Row レコードを追加する。
(「レコード(record)」はどちらかといえばファイルで使う用語で、DBでは「ロー(row):行」を使う)
どこかの行を選択していて「Insert Row」を押した場合、そこに追加される行が増える。
どこも選択していない場合は一番上に追加される行が増える。
一番下の行の一番右の項目でTabキーを押すと、一番下に追加される行が増える。
(いずれにしても見た目だけの問題で、DB内に保持される場所を指定できるわけではないのだが)
Delete Selected Row(s) レコードを削除する。
Shiftキーを押しながら2つ目の行を選べば、範囲選択できる。
データ部(一番左の行番号以外の場所)でCtrlキーを押しながら行を選ぶと、複数選択できる。
(複数選択はちょっと分かりづらいので、わざわざ使わなくていいかも。
どうせコミットするまで実際には削除されないんだから、何度か削除操作をすればいいだけの話)
Commit Changes 変更(追加・削除・更新)をコミットする。
Rollback Changes 変更(追加・削除・更新)をロールバックする。
Sort ソート項目を指定する。
ここでソート条件を指定しない限り、表示されるデータの順序は適当(バラバラ)。
(シート上の項目名をクリックしただけでもソートできた方が便利なんだけどなー。
 ワークシートExecute Statement(F9)で実行した結果の場合は項目名の左側の「AZ」をダブルクリックするとソートできるのに)
Filter フィルター(表示データの選択条件)を指定する。
Filterの右側の「Enter Where Clause」にWHERE条件を書いてEnterキーを押すと、その条件で表示される。
Actions テーブル名を変更したりテーブルを削除(drop)したりといった色々な操作を行う。

レコードを右クリックして「Single Record View」を選ぶと、1レコードだけを表示するダイアログが開く。
項目が縦に並んでデータ部の横幅も広いので、場合によっては便利かも。

テーブルのレコード数(count(*))が知りたいなら、データ部を適当に右クリックして「Count Rows」を実行するとよい。


データをクリックして(選択して)値を入力すると、既存のデータの末尾に追加されてしまう。
データをダブルクリックして(あるいはF2キーを押して)からだと上書き変更になる。
(普通は逆じゃないか…?)
Tabキーで移動した直後はクリックされた状態と同じ。

値をNULLに更新したい場合は、文字列を何も入力しない(全て削除する)。

数値のエリアに文字列を入れた場合や桁数オーバーの場合でも、コミットするまではエラーにならない。
コミットの際に実際のUPDATE文が実行される為、そこで初めてチェックされる)


シート上で行全体を選択(一番左の行番号をクリック)してCtrl+C(メニューバーのEdit→Copy)し、別の行全体を選択してCtrl+V(メニューバーのEdit→Paste)すると、データを複写できる。
また、Insert Rowで追加した行にペーストすることで、新しいデータに貼り付けることも出来る。
(同一の行を増やすなら、増やしたい行で右クリックして「Duplicate Row」を実行する方が分かり易いか?)

行の中の個別項目を選択してからペーストする場合、ペースト時に選択されていた項目に貼り付けられる。
(複数の項目を間隔を空けて選択していた場合でも、貼り付け時は連続した項目(選択されていた項目から右へ順番に)に貼り付けられる)


Find DB Object

オブジェクト(テーブルとか)を名前から探すには、「Find DB Object」ビューが使える。[2008-12-17]
Apply Filter」がいちいちダイアログで条件を指定し直さないといけないのに対し、このビューはオブジェクト名(の一部分)で1つずつ探したい場合に便利。

  1. メニューバーの「View」→「Find DB Object」で「Find DB Object」ビューを開く。
    (デフォルトで「Search」バーが有効になっている)
  2. コネクション名を選択する。
  3. (コネクション名の下のテキスト入力エリアに)オブジェクト名(の一部)をLIKE演算子と同様な書式で入力し、Enterキーを押す。
  4. すると、その条件に合致したオブジェクト一覧が表示される。
  5. オブジェクトをクリックすると、そのオブジェクトのシートが開く。
オブジェクト名の入力エリアの入力例
入力例 取得結果
E% Eで始まるオブジェクト一覧
hishidama.% hishidamaユーザーが所有しているオブジェクト一覧

「Recent Objects」バーをクリックすると、最近シートを開いたオブジェクトの一覧が表示される。[2008-12-17]
ここでオブジェクトをクリックする事でもシートを開ける。


Export DDL(and Data)

複数オブジェクトのDDL(とデータ)をエクスポート(ファイルへ出力)することが出来る。[2008-12-17]
(Oracle10gのexpと違って、ハッシュパーティションのDDLも正しく出力される)

  1. メニューバーの「Tools」→「Export DDL(and Data)」で「Export」ダイアログを開く。
  2. 出力するファイル名を入力する。
  3. 接続するコネクション名を選択する。
  4. 「Export」タブで、エクスポートするオブジェクトの種類を選ぶ。
    最上部の「Export Object Types」で全オブジェクトを選択/解除できる。
  5. 「Filter Objects」タブで、DDLの生成対象オブジェクトを指定する。
    1. 左側の「GO」を押すとExportタブで指定した全オブジェクトが表示される。
      (「GO」の左側にWHERE句のLIKE演算と同様にオブジェクト名を指定すると、それで絞れる)
    2. オブジェクトを選択して「>」、あるいは「>>」で全オブジェクトを右ペインへコピーする。これがエクスポート対象となる。
  6. Exportタブで「Data」にチェックを入れていた場合、「Filter Data」タブでデータのエクスポート対象オブジェクトを指定する。
  7. 「適用(A)」ボタンを押すとDDL生成が実行される。(Dataも指定していた場合はINSERT文も生成される)

なお、実行した際にエラーがあると、ダイアログ自体が閉じてしまって訂正できない。最初からやり直し!不便だ…

テーブル1つだけのデータをエクスポートするなら、Export Dataの方が便利。


Export DDLによってエクスポートしたファイルは、SQLファイルとして実行できる。[2008-12-17]

  1. メニューバーの「File」→「Open」で、エクスポートしたファイルを選択する。
  2. すると、そのファイル内容を読み込んだワークシートが開く。
  3. Run Script(F5)を実行する。
  4. コミット(F11)する。

ただ、データ数が多いとかなり時間がかかる。(終わるとは思えないほど。なにせINSERT文を1つずつ実行していって、最後にまとめてコミットなので。)
そういう時は素直にexpを使う方がいいかも。


SQL*Plusへ行く / Oracle目次へ戻る / 新機能へ戻る / 技術メモへ戻る
メールの送信先:ひしだま