はじめに
Oracle SQL Developerは、Oracleデータベースと対話するための多くの機能を備えた強力な開発ツールです。 SQL Worksheetを使用したSQLステートメントの作成と送信に加えて、SQL Developerには、データベースの管理、データモデルを使用したデータベースの設計とリバースエンジニアリング、およびデータマイニングジョブの実行のための強力なツールがあります。最新バージョン(2019年12月20日現在のバージョン19.4)には、いくつかの基本的なデータベース管理ツール、RESTクエリのサポート、JSONドキュメントの解析も含まれています。
MacOSXで作業している場合は、MacOSXでSQL Developerをインストールして操作する手順については、こちらをご覧ください。
このチュートリアルの次のセクションでは、SQLDeveloperのダウンロードとインストールについて説明します。 SQL Developerをすでにダウンロードしてインストールしている場合は、次のページに進んで、新しいデータベース接続を作成する方法を学ぶことをお勧めします。
このチュートリアルの終わりに向けて、SQLステートメントの作成、実行、保存の方法、SQL Developerを使用したデータのエクスポート方法、およびSQLDeveloperを使用したOracleへのデータのインポート方法について説明したページがいくつかあります。 SQLDeveloperを使用してOracleスキーマをリバースエンジニアリングすることもできます。そのチュートリアルはここにリンクされています。
SQLDeveloperのダウンロードとインストール
SQL Developerは、OracleDeveloperのネットワークから無料でダウンロードできます。 SQL Developerを実行するには、JavaDevelopmentKitが必要です。たとえば、SQLDeveloperバージョン4.1.3以降にはJDK1.8が必要です。
次のリンクにアクセスして、SQLDeveloperファイルをダウンロードしてください。
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
オペレーティングシステムに一致するバージョンを選択します(または必要に応じてJDKを含むバージョンを選択します)。このチュートリアルの残りの部分は、Windowsバージョンを使用して完了しました。
SQL Developerのダウンロードは、単一の.zipファイルです。例:sqldeveloper-4.1.3.20.78-no-jre.zip(またはsqldeveloper-17.4.0.355.2349-x64.zipなどの新しいバージョン)
SQLDeveloperzipファイルを適切なドライブに解凍します。結果は単純なsqldeveloperフォルダーになります。
sqldeveloper.exe実行可能ファイルをダブルクリックします。 Java Development Kit(JDK)ホームディレクトリへのパスを指定するように求めるダイアログボックスが表示される場合があります。
[参照]ボタンをクリックして、JDKホームフォルダに移動します。
[フォルダの選択]をクリックすると、JDKへのパスがダイアログボックスに表示されます。
[OK]ボタンをクリックすると、SQLDeveloperが起動します
SQL Developerが実行されると、次の画面が表示されます。
新しいデータベース接続の構成
ビジネスの最初の順序は、Oracleデータベースへの新しい接続を作成することです。新しい接続を設定するには、次のことを知っておく必要があります。
- Oracleを実行しているサーバーの名前(またはIPアドレス)。ローカルコンピュータにOracleをインストールしている場合は、「localhost」(または127.0.01)を使用できる可能性があります。
- OracleListenerプロセスが実行されているTCP/IPポート番号。 Oracleのデフォルトでは、ポート1521を使用します。これを別の方法で構成していない限り、1521を使用してください。
- サーバー上の特定のOracleインスタンスを識別するOracleSystemIdentifier(SID)またはサービス名。
一般的な組み合わせは次のとおりです。
- 同じ(ローカル)サーバーまたはPCにインストールされたOracle11gまたは12cEnterprise Edition:ホスト:localhost、ポート:1521、SID:orcl
- 同じ(ローカル)サーバーまたはPCにインストールされたOracle 11g Express Edition:ホスト:localhost、ポート:1521、SID:xe
- リモートサーバーにインストールされているOracle11gまたは12cEnterpriseEdition:ホスト:myhostname.domain.com、ポート:1521、SID:orcl
- マルチテナントデータベースを使用してリモートサーバーにインストールされたOracle12cEnterprise Edition:ホスト:myhostname.domain.com、ポート:1521、サービス名:pdb1
- OracleCloudを実行しているOracleAutonomousDataWarehouseまたはAutonomousTransactionProcessingデータベース:接続タイプを変更します クラウドウォレットへ 次に、クラウドデータベースインスタンスからダウンロードしたウォレットの.zipファイルを選択します。次の手順に従ってください(ページ6)。
ターゲットDBMSがOracleCloudのAutonomousDatabaseである場合は、OracleCloudWalletを使用するわずかに異なる手順に従う必要があることに注意してください。自律型データベースへの接続を設定するには、次の手順(6ページ)に従ってください。
新しい接続の構成を開始するには、緑色の+記号の横にある下矢印をクリックして、[新しい接続...]を選択します。
デフォルトの「新規/データベース接続の選択」ウィンドウが表示されます。
接続に新しい名前を付け、接続するOracleデータベースアカウントのユーザー名とパスワードを入力します。
ホスト名に、Oracleデータベースが実行されているサーバーのインターネットホスト名またはIPアドレスを入力します。 Oracleリスナーが実行されている場所と一致するようにポートを設定します(1521が一般的なデフォルトです)。
ホストにOracleSystemIdentifier(SID)が設定されている場合は、それを入力します。それ以外の場合、Oracleサーバーがマルチテナントを使用している場合(oracle 12c以降)、[サービス名]を選択し、データベースインスタンスのサービス名を指定します。
その他の高度な認証、暗号化、セキュリティ設定は、必要に応じて具体的にすることができます。
以下は、Oracleシステムアカウントを使用してローカルサーバー上のOracle12cインスタンスに接続する例です。このアカウントのパスワードは、データベースのインストール中に設定されました。
テストボタンをクリックして接続をテストします。エラーメッセージがあるかどうかを確認するには、左下隅のステータスに注意してください。下の画像は「成功」を示しています:
一般的なログインエラーと確認事項
SQLDeveloperがOracleServerへの接続に成功しない理由はいくつかあります。より一般的な潜在的な問題と解決策のいくつかを以下に示します。 「クライアント/サーバー」Oracleアーキテクチャと、それらの間にネットワークがあるという事実に留意してください。
ステータス:失敗-テストに失敗しました:IOエラー:ネットワークアダプタが接続を確立できませんでした |
SQLDeveloperクライアントとOracleデータベースサーバー間のネットワーク経由での接続に問題があります。ホスト名(またはIPアドレス)またはポート番号が正しくありません。または、その他のネットワークの問題(DNS、ファイアウォールなど)により、SQLDeveloperがOracleサーバーに接続できません。 Oracle Listener(着信接続を受け入れるネットワークサービス)が実行されていないか、別のネットワークポートをリッスンしている可能性もあります。 traceroute( tracert )を使用してみてください Windowsの場合)サーバーにアクセスできるかどうかを確認します。 OracleDatabaseがOracleListenerサービスとともに稼働していること、およびファイアウォールがポート1521への接続をブロックしていないことを確認します。
ステータス:失敗-テストに失敗しました:リスナーが次のエラーで接続を拒否しました: ORA-12505、TNS:listenerは現在接続記述子で指定されたSIDを認識していません |
SQL DeveloperはOracleサーバーのリスナー・プロセスに正常に接続していますが、提供されたSIDがデータベース・サーバーで構成されているものと一致していません。
ステータス:失敗-テストに失敗しました:リスナーが次のエラーで接続を拒否しました: ORA-12514、TNS:listenerは現在接続記述子で要求されたサービスを認識していません |
SQL DeveloperはOracleサーバーに正常に接続していますが、提供されたサービス名がデータベースサーバーで構成されているものと一致していません。
ステータス:失敗-テストに失敗しました:ORA-01017:ユーザー名/パスワードが無効です。ログオンが拒否されました |
SQL Developerは、Oracleサーバーおよびインスタンスに正常に接続しています(したがって、ホスト名、ポート、およびSIDまたはサービス名が正しい)。ただし、ユーザー名やパスワードが一致していません。
ステータス:失敗-テストに失敗しました:ORA-28000:アカウントがロックされています |
SQL Developerは、Oracleサーバーおよびインスタンスに正常に接続しています(したがって、ホスト名、ポート、およびSIDまたはサービス名が正しい)。ただし、Oracleアカウントはロックされています(たとえば、ログイン試行の失敗が多すぎる、またはパスワードの有効期限が切れています)。
ORA-12518:TNS:listenerはクライアント接続を渡すことができませんでした |
SQL Developerは、Oracleサーバーおよびインスタンスに正常に接続しています(したがって、ホスト名、ポート、およびSIDまたはサービス名が正しい)。ただし、リスナーはOracleデータベースに接続できません。これは、データベースが実行されていないか開かれていない場合、またはOracleを実行しているサーバーのRAMが不足している場合に発生する可能性があります。リスナープロセスとデータベースプロセスの間にユーザー権限の問題がある場合にも発生する可能性があります。
SQLDeveloper接続の保存
テストが成功したら、[保存]ボタンをクリックしてこの接続を保存します。
Oracleデータベースへの接続
最後に、接続がテストされて保存されたので、[接続]ボタンをクリックしてデータベースサーバーに接続します。
画面の4つの主要な領域は次のとおりです。
接続ウィンドウ、レポートナビゲータウィンドウ、SQLワークシートおよびスクリプト出力ウィンドウ。 SQLワークシートでSQLステートメントを実行するまで、[スクリプト出力]ウィンドウが表示されない場合があります。何らかの理由でSQLワークシートにアクセスできない場合は、ツールをプルダウンします。 メニューからSQLワークシートを選択します メニュー項目。
SQLステートメントは、SQLワークシートに直接入力するか、別のドキュメント、Webページ、電子メールなどから貼り付けることができます。
SQLワークシートには、orcl_localhost.sql
などのデフォルトのファイル名が付けられています。このファイルは、PCの任意のローカルフォルダに保存できます。このファイルを保存することは、SQLステートメントを作成および再作成するときにSQLステートメントの履歴を追跡するための優れた方法です。
既存のSQLスクリプトファイルを開くには、[ファイル]メニューをプルダウンして[開く]を選択します。 SQLスクリプトファイルのあるフォルダに移動し、それを強調表示して、[開く]ボタンをクリックします。
SQLDeveloperを使用したOracleデータのエクスポート
SQL Developerには、Oracleの表またはビューからデータを非常に簡単にエクスポートできる機能があります。ターゲットデータベースまたはデータツールの機能に応じて、Oracleからデータをエクスポートする方法は多数あります。データをエクスポートする一般的な例は次のとおりです。
- 別のデータベースのデータを使用してテーブルを再作成するために使用されるSQLデータ定義言語およびSQLINSERTステートメントファイル。
- データを別のOracleデータベースまたはスキーマにインポートするために使用できるOracleSQLLoaderファイルとスクリプト。
- さまざまなソフトウェアツールやデータベースなどでインポートできるカンマ区切り値(.csv)ファイル
- MicrosoftExcelファイル
- さまざまなソフトウェアツールにインポートできるeXtensibleMarkupLanguage(XML)ファイル
- Webページに表示できるハイパーテキストマークアップ言語(HTML)ファイル
- 間隔が固定されているか、さまざまなソフトウェアツールやデータベースからインポートできる他の区切り文字を使用したプレーンテキストファイル。
この例では、エクスポート可能なスキーマ(接続)にデータを含むテーブルまたはビューが少なくとも1つあることを前提としています。スキーマに何も含まれていない場合は、基本テーブルを作成し、以下のSQLステートメントを使用してデータを追加します。
-- Create a simple Employee table CREATE TABLE employee ( employee_id INTEGER NOT NULL, first_name VARCHAR2(35), last_name VARCHAR2(65), salary NUMBER(12,2), department_number INTEGER ); -- Add three new records to the employee table INSERT INTO employee VALUES (101, 'Joe', 'Smith', 47000.00, 1); INSERT INTO employee VALUES (102, 'Alice', 'Jones, 49000.00, 2); INSERT INTO employee VALUES (103, 'Greg', 'Brown', 42500.00, 1, 2);
開始するには、SQLDeveloper画面の左側にある「接続」領域のナビゲーションツリーを開きます。接続の名前の下に、テーブル、ビュー、編集ビュー、インデックスなどが一覧表示されます。 テーブルを開きます およびビュー カテゴリも同様です。
この例では、EMPLOYEEテーブルがエクスポートされます。
EMPLOYEEテーブルを右クリックし、以下に示すように[エクスポート...]メニュー項目を選択します。
これにより、短いエクスポートウィザードが表示されます。
Oracleテーブルをエクスポートするためのデフォルト設定
ターゲットデータベースまたはデータツールの機能に応じて、Oracleからデータをエクスポートする方法は多数あります。この例では、EMPLOYEEテーブルがMicrosoftExcelスプレッドシートにエクスポートされます。
CSVファイルまたはスプレッドシートにエクスポートする場合、テーブルまたはビューの構造を指定するデータ定義言語(DDL)を含める必要はありません。したがって、この例では、DDLのエクスポートの横にあるチェックボックスを削除します 。
データのエクスポート セクションで、形式を変更します: Excel 2003+(xlsx)
この形式設定では、最大100万行に対応できるExcelの新しいファイル形式が使用されます。古いバージョンのExcelとの下位互換性のために、代わりに Excel ’95 – 2003(xls)を選択できます。 フォーマットとして。
データワークシート名:の横のテキストボックスで、新しいワークシートに名前を付けます プロンプト。
Oracleからデータを引き出すために使用されるSQLステートメントのテキストを含める場合は、[ワークシート名のクエリ]の横のチェックボックスをオンにしてから、SQL構文が表示されるExcelワークシートの新しい名前を指定します(この例では、 SQLコードを含めないことを選択しました。
最後のセクションでは、データをファイルまたはファイルのセットに保存する方法を指定します。この例では、データは単一のファイルにエクスポートされます。次に、ファイル名がファイル:の横のテキストボックスに表示されます。 促す。 [参照...]ボタンを使用して、十分な空きディスク容量があるフォルダ(ディレクトリ)を見つけます。次に、ファイル名をパスに追加します。
これらすべてを設定したら(以下を参照)、[次へ>]ボタンをクリックします。
次の画面では、エクスポートするデータの列や行をフィルタリングする2つの機会が提供されます。
デフォルトでは、すべての列とすべての行がエクスポートされます。特定の列を選択するには、列の下のテーブルの横にあるスペースをクリックします 見出し。次に、鉛筆アイコンをクリックして編集します。データエクスポートに含まれる列の横にチェックマークが付いた新しいウィンドウがポップアップ表示されます。この例では、すべての列がエクスポートされます。
[OK]をクリックして、[データ列]ウィンドウを閉じます。
エクスポートする行をフィルタリングするために、WHERE句を追加できます。 Object Where見出しの下のスペースをクリックし、鉛筆アイコンをクリックしてWhereエディターを表示します。
必要な条件(department_number =1など)を追加します。この例では、すべてのデータをエクスポートするため、Where条件は追加されていません。 [OK]ボタンをクリックして、完了したら[データの場所]ウィンドウを閉じます。
[次へ>]ボタンをクリックして、[概要のエクスポート]画面を表示します。この画面では、すべてのエクスポートオプションの概要が指定されています。
いずれかのオプションが正しく設定されていない場合は、<戻るボタンを使用して前の手順に戻り、必要に応じて調整します。
すべてのエクスポートオプションに問題がない場合は、[完了]ボタンをクリックしてエクスポートジョブを開始します。
エラーが発生した場合は、実際に存在する宛先フォルダーを指定していることを確認してください(このチュートリアルにあるものを盲目的にコピーしないでください)。また、たとえば、宛先ファイルがExcelでまだ開かれていないことを確認してください。
Windowsエクスプローラーを使用してフォルダーに移動し、新しくエクスポートされたファイルを表示します。例:
Excelファイルを開いて内容を表示します:
データを再度エクスポートする前に、必ずExcelファイルを閉じてください。
SQLDeveloperを使用したデータのインポート
SQL Developerには、さまざまなデータソースからOracleにデータを非常に簡単にインポートできる機能があります。データのソースに応じて、Oracleにデータをインポートする方法は多数あります。 SQLDeveloperがインポートできる一般的なデータ形式には次のものがあります。
- Oracleでデータを使用してテーブルを再作成するために使用されるSQLデータ定義言語およびSQLINSERTステートメントファイル。
- データをOracleにインポートするために使用できるOracleSQLLoaderファイルとスクリプト。
- カンマ区切り値(.csv)ファイル
- Microsoft Excelファイル(.xlsおよび.xlsx)
- eXtensible Markup Language(XML)ファイル
- 固定間隔または他の区切り文字を使用したプレーンテキストファイル
この例では、SQLDeveloperを介して作成されたOracleデータベースへの接続があることを前提としています。
インポートするファイルは、ここにリンクされているcustomers_export.csvファイルになります。データは次のようになります(21列の319行):
データインポートの開始
開始するには、SQLDeveloper画面の左側にある「接続」領域のナビゲーションツリーを開きます。 テーブルを右クリックします 入力して、ポップアップメニューから[データのインポート...]メニュー項目を選択します。
この時点で、古いバージョンのSQL Developer(4.1.3より前)では、インポートするファイルを選択できるファイル選択ダイアログボックスが表示されます。 SQL Developerの新しいバージョン(4.1.3以降)では、以下に示すように、データインポートウィザードの最初のステップが表示されます。
新しいSQLDeveloperの場合は、「ブラウザ」ボタンをクリックして「ファイル選択」ダイアログボックスを表示し、ファイルを選択します。
ファイルが置かれているフォルダに移動して選択します。ファイルタイプは、Excelファイル、CSVファイル、およびその他のいくつかの種類のテキストファイルをフィルタリングするように設定されていることに注意してください。
[開く]ボタンをクリックして、データインポートウィザードを開始します。
インポートするデータのプレビューと設定の確認
データインポートウィザードの最初のステップは、インポートされるデータのプレビューを提供します。この例では、CSVファイルには、インポートウィザードが変数名を作成するために使用するヘッダーの行があります。ウィザードのこのステップには、開始時にいくつかの行をスキップする(この例では0)、フォーマット(この例ではcsv)、文字エンコード、テキストまたは文字列と行を囲むために使用される引用記号を選択する追加のオプションがありますエンディング/ターミネーター。ほとんどの場合、これらの設定はデフォルトのままにしておくことができます。
特定の状況で役立つ可能性のあるいくつかの変更は次のとおりです。
- CSVファイルがLinuxまたはMacオペレーティングシステムで作成された場合にのみ、ラインターミネータをラインフィードに変更します。
- エンコーディングを、ワールドリージョン(またはCSVファイルが生成されたワールドリージョン)に一致する特定のコードページに変更します。
- プレビュー行の数を変更し、データをスクロールして、すべてが正しく解析されていることを確認します。
すべての設定が適切で、プレビューされたデータが適切である場合は、[次へ>]ボタンをクリックして次のステップに進みます。
インポート方法の選択
ウィザードの次のステップは、インポート方法を指定することです。さまざまなインポート方法が提供されています:
- 挿入–データを新規または既存のテーブルに直接挿入します。
- スクリプトの挿入–データをデータベースにロードするために必要なすべてのDDLおよびINSERTステートメントを含むSQLスクリプトファイルを作成します。このスクリプトはすぐに実行することも、別のデータベース接続に移動してそこで実行することもできます。
- 外部テーブル– Oracle内に外部テーブル構造を設定します。テーブルはデータディクショナリに表示されますが、データは外部ファイルに保持されます。
- SQLローダーユーティリティ–データをOracleにインポートするためのSQLローダースクリプトとコマンドを記述します。
この例では、挿入 メソッドが使用されるため、データは新しいテーブルに直接挿入されます。
テーブルの名前を入力します。インポートする行を制限する理由がある場合は、行のインポート制限を確認してください。 ボックスに入力し、行数を指定します。たとえば、データファイルに数百万の行があるが、データの一部がどのように見えるかを知りたいだけの場合は、インポートされる行の数を制限できます。この例では、すべての行がインポートされます。
[次へ>]ボタンをクリックして、次のステップに進みます。
インポートする列を選択します
ウィザードのステップ3は、インポートする列を選択することです。 使用可能な列の列を強調表示します ウィンドウをクリックし、右矢印をクリックして、選択した列に移動します。 窓。この例では、すべての列がインポートされます。
[次へ>]ボタンをクリックして、次のステップに進みます。
各列へのデータ型の割り当て
ウィザードのステップ4では、新しいデータテーブルに作成される列のデータ型とサイズを定義できます。 これは非常に重要なステップです! 間違ったデータ型が選択された場合、またはデータ型に受信データを保持するのに十分なスペースがない場合、インポートは失敗します。
SQL Developerの新しいバージョンでは、選択された各列のデータプレビューが表示されます。
発生する一般的な問題は次のとおりです。
- 最大の文字列/テキスト値を収容するのに十分なスペースをVARACHAR列に提供していません。
- データにテキスト文字が含まれている場合に、列でNUMBERデータ型を使用します。
- 日付と時刻をインポートするときに誤った日付または時刻の形式を使用する。
各ソースデータ列にアクセスします それらを一度に1つずつクリックします。作業を進めながら、データ型を調整してください。この例では、次の調整が行われます。
- CUSTOMER_IDをINTEGERデータ型に変更し、Nullableのチェックボックスを削除します
- CUST_FIRST_NAMEはサイズ30のVARCHAR2を使用します
- CUST_LAST_NAMEはサイズ60のVARCHAR2を使用します
- STREET_ADDRESSはサイズ65のVARCHAR2を使用します
- POST_CODEはサイズ20のVARCHAR2を使用します
- CITYはサイズ35のVARCHAR2を使用します
- STATE_PROVINCEはサイズ6のVARCHAR2を使用します
- COUNTRY_IDはサイズ4のVARCHAR2を使用します
- COUNTRY_NAMEはサイズ60のVARCHAR2を使用します
- REGION_IDはサイズ2のVARCHAR2を使用します
- NLS_LANGUAGEはサイズ6のVARCHAR2を使用します
- NLS_TERRITORYはサイズ30のVARCHAR2を使用します
- CREDIT_LIMITは、サイズ/精度が10、スケールが0のNUMBERを使用します
- CUST_EMAILはサイズ60のVARCHAR2を使用します
- PRIMARY_PHONE_NUMBERはサイズ30のVARCHAR2を使用します
- PHONE_NUMBER_2はサイズ30のVARCHAR2を使用します
- ACCOUNT_MGR_IDはサイズ6のVARCHAR2を使用します
- LOCATION_GTYPEはINTEGERを使用します
- LOCATION_SRIDはINTEGERを使用します
- LOCATION_Xは、サイズ/精度が14、スケールが6のNUMBERを使用します
- LOCATION_Yは、サイズ/精度が14、スケールが6のNUMBERを使用します
[次へ>]ボタンをクリックして、次のステップに進みます。
インポートパラメータの確認(旧SQL Developer)
古い(4.1.3より前の)バージョンのSQL Developerの場合、データインポートウィザードの最後のステップで、データパラメータと設定によってデータファイルの解析が可能になることを確認できます。この画面を以下に示します:
[確認]ボタンをクリックして、すべての設定が正しく機能していることを確認します。検証プロセスの結果を以下に示します。
問題がある場合は、<戻るボタンを使用して前の画面に戻り、設定を変更してください。
インポートパラメータを保存する(SQL Developerの新しいバージョン)
SQL Developerの新しいバージョン(4.1.3以降)では、最終画面が少し異なります。この時点で設定はすでにチェックされているため、概要画面が表示されます。右上隅にある[状態の保存]ボタンは、すべてのインポート設定をファイルに保存する方法を提供します。この設定ファイルは、次にデータインポートウィザードを実行するときにロードできます。
この例では、新しいバージョンのSQL Developerを使用している場合は、「状態の保存」ボタンをクリックして、設定をoracle_sqldev_import_customersという名前のファイルに保存します。
インポートの実行
いずれの場合も(古いバージョンまたは新しいバージョンのSQL Developer)、データのインポートを開始するには、「終了」ボタンをクリックします。インポートが完了すると、ダイアログボックスが表示されます。インポート中に発生したエラーが表示されます。
SQL Developerに戻り、インポートされたテーブルの構造を表示します。
次に、データを確認し([データ]タブをクリック)、データ値が正しくインポートされたことを確認します。
SQL Developerの新しいバージョンの場合、保存されたインポート設定ファイルは、データのインポートウィザードの最初のステップでインポートして、データのインポートを再実行する前に再実行またはインポート設定を変更できます。