技術ブログ
目次
Oracle ACE Proの渡部です。 この記事は、 JPOUG Advent Calendar 2025 3日目の記事です。 2日目は wmo6hashさん の記事『Oracle Developer Day 2025 LT1-2 さまざまなデータベース・デプロイメント』でした。
ORACLE MASTERのSQL分野の学習におススメしていたOracle Live SQLが、いつのまにか名前が変わって"Oracle FreeSQL"になっていました。さらにいくつか便利な機能が追加されていたので、これも併せてご紹介します。
Oracle FreeSQLとは、オラクル社が公開しているOracleのSQLを実行できるWebアプリケーションです。無料で使用できます。環境を準備する苦労なしにOracleのSQLを実行できるため、初心者のOracle SQL学習に非常に有用です。
環境構築が不要なORACLE MASTERのSQL学習方法(Oracle Live SQL)
マニュアルなどの公式文書がないため、推測交じりになりますが、おそらく以下の経緯です。
私が確認した限り、Oracle FreeSQLには公式マニュアルがありません。おそらく、唯一公開されているのは、"FreeSQL Change Log"だけです。
このため、機能の一覧を把握することが難しいのですが、以下の機能を使えるようです。
データの変更など、一部の処理はOracle SSOでサインインしていないと使えません。
また、多くの機能はAPEXのSQLワークショップから移植されたもののように見えます。
なお、今後も随時機能が追加されるはずです。オブジェクトブラウザなどは、もっと機能を充実してほしい印象を持っています。
以下ではいくつか有用と思われる機能を紹介します。
従来のOracle Live SQLは、Web画面以外のインタフェースがありませんでしたが、Oracle FreeSQLでは、手元のOracleクライアントからいわゆる「リモート接続」が可能になっています。この機能は2025年11月に追加されました。
なお、この機能はOracle SSOでサインインしていないと使えません。
以下に、sqlclでOracle FreeSQLにリモート接続する例を示します。
> .\sql 'RYOTA_WATABE_SCHEMA_3QNPE/(略)//db.freesql.com:1521/26ai_un3c1'
SQLcl: 火 12月 02 13:22:34 2025のリリース24.3 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle AI Database 26ai EE Extreme Perf Release 23.26.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.26.0.0.0
SQL> show user
USERは"RYOTA_WATABE_SCHEMA_3QNPE"
SQL> create table t1 (id number(8) primary key, c1 varchar2(8));
Table T1は作成されました。
SQL> INSERT INTO t1 values(1,'AAA');
1行挿入しました。
SQL> commit;
コミットが完了しました。
SQL> select * from t1;
ID C1
_____ ______
1 AAA
SQL> select * from hr.jobs;
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
_____________ ________________________________ _____________ _____________
AD_PRES President 20080 40000
AD_VP Administration Vice President 15000 30000
AD_ASST Administration Assistant 3000 6000
FI_MGR Finance Manager 8200 16000
FI_ACCOUNT Accountant 4200 9000
AC_MGR Accounting Manager 8200 16000
AC_ACCOUNT Public Accountant 4200 9000
SA_MAN Sales Manager 10000 20080
SA_REP Sales Representative 6000 12008
PU_MAN Purchasing Manager 8000 15000
PU_CLERK Purchasing Clerk 2500 5500
ST_MAN Stock Manager 5500 8500
ST_CLERK Stock Clerk 2008 5000
SH_CLERK Shipping Clerk 2500 5500
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
__________ __________________________________ _____________ _____________
IT_PROG Programmer 4000 10000
MK_MAN Marketing Manager 9000 15000
MK_REP Marketing Representative 4000 9000
HR_REP Human Resources Representative 4000 9000
PR_REP Public Relations Representative 4500 10500
19行が選択されました。
SQL>
これで、従来のLive SQLでは実行できなかった対話的トランザクション(ロングトランザクション)の検証も可能になります。
SQL> CREATE TABLE test (id NUMBER);
Table TESTは作成されました。
SQL> INSERT INTO test VALUES(1);
1行挿入しました。
SQL> SAVEPOINT a;
Savepointは作成されました。
SQL> INSERT INTO test VALUES(2);
1行挿入しました。
SQL> SAVEPOINT b;
Savepointは作成されました。
SQL> INSERT INTO test VALUES(3);
1行挿入しました。
SQL> SELECT * FROM test;
ID
_____
1
2
3
SQL> ROLLBACK TO b;
ロールバックを完了しました。
SQL> SELECT * FROM test;
ID
_____
1
2
SQL>
注意点
参照
クイックSQLは、Oracle独自のDDLの短縮記法です。 基本的にAPEXのSQL Worksheetでのみ使用可能でしたが、これがOracle FreeSQLでも使用できるようになっています。
実用性は若干微妙ですが、SQLを実行できるボタン/リンクをWebページに埋め込めます。 🙂
参照
JPOUG Advent Calendar 2025 の明日4日目の記事は、wmo6hashさんに執筆いただく予定です。wmo6hashさん、よろしくお願いいたします!