Mac、iPhoneとiPad 用 Oracle Database クライアント
ドライバーは Swift で Oracle の TNS プロトコルを使うため、Instant Client など Oracle のソフトを Mac に入れる必要はありません。SQL*Plus 向けのスクリプトを含む SQL と PL/SQL を実行し、各結果の横で DBMS_OUTPUT の出力を読めます。
Mac、iPhoneとiPad で使用可能初めて Oracle を選ぶとドライバーをダウンロード


概要
- クエリ言語
- SQL
- ドライバー
- 初回使用時にダウンロード
- 接続方法
- ホストとポート, SSH トンネル, SSL/TLS
- 既定のポート
- 1521
- 最低バージョン
- 11.1、強制:古いサーバーは拒否
- iPhone と iPad
- 開ける
接続
ホスト、リスナーポートと Service Name を入力し、サービスのないインスタンスでは Connection Type を SID にします。ユーザー名とパスワードで Normal、SYSDBA または SYSOPER ロールとしてログインします。
Native Network Encryption は設定不要で、サーバーが要求すると SHA-2 チェックサム付き AES を提示します。Network Encryption は提示内容を変更します。TLS は TCPS 用 Required、または CA 証明書付き Verify CA・Verify Identity を選びます。新規接続は SSL 無効で、Preferred は平文 TCP のままです。
Oracle Autonomous Database では mTLS ではなく TLS 接続文字列からホスト、ポートとサービス名をコピーし、SSL を Required か Verify CA にします。ウォレットファイルは読まないため、データベースは相互 TLS なしの TLS を受け付ける必要があります。
RAC SCAN リスナー、共有サーバーやデータベース前のロードバランサーは設定不要です。プライベートネットワークのリスナーには SSH トンネル で接続します。
SQL、PL/SQL とトランザクション
PL/SQL ブロックやストアドユニットはセミコロンの数によらず一つの文として実行するので、中にカーソルを置いて実行してください。SQL*Plus や SQL Developer のスクリプトはそのまま動作し、/ だけの行は直前のユニットを終えます。コンパイル失敗は Oracle のエラーを一行ずつ位置付きで表示します。
DBMS_OUTPUT.PUT_LINE の各行は出力した文の結果と表示し、SET SERVEROUTPUT ON は不要です。無名ブロックの :name はパネルで入力する クエリパラメーター です。
各文は成功時にコミットします。変更を保持するには SET TRANSACTION、SAVEPOINT や LOCK TABLE で始めると、グリッド保存も含む以後のすべては COMMIT か ROLLBACK を待ちます。
各ユーザーがスキーマで、Cmd+K は再接続せずアクティブなものを切り替えます。行編集は Preview SQL で保留します。EXECUTE IMMEDIATE 経由でも削除や truncate を行うブロックは実行前に 危険なクエリの警告 を表示します。
スキーマ
Structure タブ は ALTER TABLE でカラムを追加、名前変更、変更・削除し、インデックスを作成します。大文字小文字を区別する名前は二重引用符で囲みます。テーブル情報には主キー、外部キーと CREATE TABLE DDL も含みます。
パーティションテーブルは配下に位置付きのパーティションを一覧表示し、サブパーティションをその中に表示します。一つを問い合わせるには SELECT * FROM orders PARTITION (p2024) を使います。
Starter プランの Compare & Sync は二つの Oracle スキーマやデータを比較し、各ユニット後に / 行を入れた SQL*Plus や SQLcl 用スクリプトを保存します。
サーバー上のエクスポート
Server-Side Export は自分の権限でテーブルをサーバーの DIRECTORY オブジェクトに書く Data Pump ジョブを開始します。Mac には保存しません。開始を報告した後もジョブは動き続けるので、DBA_DATAPUMP_JOBS で確認してください。
データの移動
CSV、TSV、JSON、JSONL、XLSXとSQL ファイルを インポート できます。データファイルが新しいテーブルを作る時、提案名は大文字で Oracle の長さ制限に収まります。テーブルや結果は CSV、JSON、SQL、XLSX、Markdown、HTMLとXML でエクスポートします。SQL エクスポートは各ルーチンとトリガー後に / 行を付け、SQL*Plus で復元できます。
iPhone と iPad
iPhone と iPad アプリで接続を作成するときに Oracle を選べ、アプリから直接接続できます。
iPhone と iPad では Oracle ドライバーをアプリに同梱します。接続フォームは Service Name または SID、SYSDBA と SYSOPER ロール、Network Encryption 設定を受け付けます。テーブルをカードで閲覧し、主キーのある行を編集して Query タブで SQL を実行できます。テーブルの作成・変更は Mac で行います。
制限
- Oracle ウォレット、OS 認証、Kerberos、LDAP は非対応です。サービス名または SID とパスワードで接続してください。
- Oracle の EXPLAIN や実行計画ビューはありません。
- Users & Roles は使えません。エディタの CREATE USER と GRANT でアカウントを管理してください。
- パッケージはサイドバーに表示しません。独立したプロシージャと関数は表示します。
Oracle に関する質問
アプリケーションのテーブルが一つも見えないのはなぜですか?
コンテナデータベースに接続した可能性があります。プラガブルデータベースは XE 内の XEPDB1 など独自のサービス名を持ちます。サーバーの lsnrctl services でリスナーが応答する名前を一覧表示します。
SET SERVEROUTPUT ON が失敗するのはなぜですか?
SET SERVEROUTPUT ON、SHOW ERRORS、EXEC などの SQL*Plus コマンドは SQL ではなく、サーバーは拒否します。接続直後から出力は有効なので削除してください。EXEC p は BEGIN p; END; と書きます。
古い 10G パスワード検証値を持つアカウントも接続できますか?
はい。ただし使われる DES ベースのハッシュは Oracle が非推奨にしています。ALTER USER … IDENTIFIED BY でパスワードを変更し、dba_users の password_versions が 11G または 12C になったか確認してください。
TablePro を入手
macOS 13 Ventura 以降 が必要です