- http://localhost:8181/ords/r/apexdev/demonstration-emp-dept/dashboardを開いて
- ユーザー名とパスワードは自分で入力します。
- サインインできました。
- Employeesの一覧を開いて
- SCOTTのSalaryを3000から4000に変更して
- いえ、これでいいです。ありがとう!
2025年3月29日土曜日
Playwright MCPを使ってOracle APEXのアプリケーションを操作する
MicrosoftのPlaywrightを使ってAPEXアプリケーションのE2Eテストを行う
- Dashboardのカードをクリックし、Dashboardのページが開くことを確認します。
- Employeesのカードをクリックし、Employeesのファセット検索のページが開くことを確認します。
- Departmentsのカードをクリックし、Departmentsの対話モード・レポートのページが開くことを確認します。
<input type="text" id="P9999_USERNAME" name="P9999_USERNAME" placeholder="ユーザー名" class="text_field apex-item-text apex-item-has-icon" autocomplete="username" value="admin" size="40" maxlength="100" data-enter-submit="false" data-is-page-item-type="true">
<button class="t-Button t-Button--hot lto18565948643221472_0" type="button" id="B18565948643221472" data-otel-label="LOGIN"><span class="t-Button-label">サインイン</span></button>
<button class="t-Button t-Button--hot lto18565948643221472_0" type="button" id="LOGIN" data-otel-label="LOGIN"><span class="t-Button-label">サインイン</span></button>
<a href="/ords/r/apexdev/demonstration-emp-dept106/dashboard?session=8435741618687" class="t-Card-wrap" data-otel-label="">
<div class="t-Card-icon u-color "><span class="t-Icon fa fa-dashboard"><span class="t-Card-initials" role="presentation"></span></span></div>
<div class="t-Card-titleWrap">
<h3 class="t-Card-title">Dashboard</h3>
<h4 class="t-Card-subtitle"></h4>
</div>
<div class="t-Card-body">
<div class="t-Card-desc"></div>
<div class="t-Card-info"></div>
</div>
<span class="t-Card-colorFill u-color " aria-hidden="true"></span>
</a>
ページの設定を確認します。<a href="#LINK#" class="t-Card-wrap" #A05# data-otel-label="#A10#">
% mkdir Playwright
%
% cd Playwright
Playwright % npm init playwright@latest
> npx
> create-playwright
Getting started with writing end-to-end tests with Playwright:
Initializing project in '.'
✔ Do you want to use TypeScript or JavaScript? · TypeScript
✔ Where to put your end-to-end tests? · tests
✔ Add a GitHub Actions workflow? (y/N) · false
✔ Install Playwright browsers (can be done manually via 'npx playwright install')? (Y/n) · true
Initializing NPM project (npm init -y)…
Wrote to /Users/ynakakoshi/Documents/Playwright/package.json:
{
"name": "playwright",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"description": ""
}
Installing Playwright Test (npm install --save-dev @playwright/test)…
added 3 packages, and audited 4 packages in 1s
found 0 vulnerabilities
Installing Types (npm install --save-dev @types/node)…
added 3 packages, and audited 7 packages in 640ms
found 0 vulnerabilities
Writing playwright.config.ts.
Writing tests/example.spec.ts.
Writing tests-examples/demo-todo-app.spec.ts.
Writing package.json.
Downloading browsers (npx playwright install)…
✔ Success! Created a Playwright Test project at /Users/ynakakoshi/Documents/Playwright
Inside that directory, you can run several commands:
npx playwright test
Runs the end-to-end tests.
npx playwright test --ui
Starts the interactive UI mode.
npx playwright test --project=chromium
Runs the tests only on Desktop Chrome.
npx playwright test example
Runs the tests in a specific file.
npx playwright test --debug
Runs the tests in debug mode.
npx playwright codegen
Auto generate tests with Codegen.
We suggest that you begin by typing:
npx playwright test
And check out the following files:
- ./tests/example.spec.ts - Example end-to-end test
- ./tests-examples/demo-todo-app.spec.ts - Demo Todo App end-to-end tests
- ./playwright.config.ts - Playwright Test configuration
Visit https://playwright.dev/docs/intro for more information. ✨
Happy hacking! 🎭
Playwright %
{"username":"admin","password":"4fae#ae2ef3!!","sessionId":"17291688537780"}
2025年3月27日木曜日
Oracle Database Free 23ai 23.7にDBMS_CLOUDファミリーのパッケージをインストールする
podman run -d --name oradb -p 1521:1521 container-registry.oracle.com/database/free:latest
% podman run -d --name oradb -p 1521:1521 container-registry.oracle.com/database/free:latest
5966443f8868e0372d28bbec70e8cb748413a0427a8f8c4300740be8246de324
%
podman exec -it oradb ./setPassword.sh [SYSのパスワード]
% podman exec -it oradb ./setPassword.sh [SYSのパスワード]
The Oracle base remains unchanged with value /opt/oracle
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Mar 27 04:10:38 2025
Version 23.7.0.25.01
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.7.0.25.01
SQL>
User altered.
SQL>
User altered.
SQL>
Session altered.
SQL>
User altered.
SQL> Disconnected from Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.7.0.25.01
%
podman exec -it oradb bash
% podman exec -it oradb bash
bash-4.4$
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/your-password -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp catclouduser.sql
bash-4.4$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/[SYSのパスワード] -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp catclouduser.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/tmp/dbms_cloud_install_catcon_1021.lst]
catcon::set_log_file_base_path: catcon: See [/tmp/dbms_cloud_install*.log] files for output generated by scripts
catcon::set_log_file_base_path: catcon: See [/tmp/dbms_cloud_install_*.lst] files for spool files, if any
catcon::get_kill_sess_script_info: query produced 2 rows instead of expected 3 rows corresponding to processes 1070, 1071, 1072
catcon.pl: completed successfully
bash-4.4$
$ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/your-password -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp dbms_cloud_install.sql
bash-4.4$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -u sys/[SYSのパスワード] -force_pdb_mode 'READ WRITE' -b dbms_cloud_install -d $ORACLE_HOME/rdbms/admin/ -l /tmp dbms_cloud_install.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written to [/tmp/dbms_cloud_install_catcon_1226.lst]
catcon::set_log_file_base_path: catcon: See [/tmp/dbms_cloud_install*.log] files for output generated by scripts
catcon::set_log_file_base_path: catcon: See [/tmp/dbms_cloud_install_*.lst] files for spool files, if any
catcon.pl: completed successfully
bash-4.4$
select con_id, owner, object_name, status, sharing, oracle_maintained from cdb_objects where object_name like 'DBMS_CLOUD%';
bash-4.4$ sqlplus / as sysdba
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Mar 27 04:28:57 2025
Version 23.7.0.25.01
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.7.0.25.01
SQL> set pages 1000 lines 180 trims on trimo on
SQL> col con_id format 9999
SQL> col owner format a18
SQL> col object_name format a30
SQL> col status format a8
SQL> col sharing format a16
SQL> col oracle_maintained format a3
SQL> select con_id, owner, object_name, status, sharing, oracle_maintained from cdb_objects where object_name like 'DBMS_CLOUD%';
CON_ID OWNER OBJECT_NAME STATUS SHARING ORA
------ ------------------ ------------------------------ -------- ---------------- ---
1 PUBLIC DBMS_CLOUD VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_AI VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_CORE VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_OCI_REGIONS VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_REPO VALID METADATA LINK Y
1 PUBLIC DBMS_CLOUD_TYPES VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_ATTR$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_SCHEMA$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CLOUD_STORE_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM VALID DATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS VALID DATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PARAM_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR_I1$ VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE_I1$ VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_I1$ VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_REST_API_RESULTS$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_STORE VALID DATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_STORE$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASKS VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS$ VALID METADATA LINK Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS_UNIQUE VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLEANUP VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TASK_ID VALID NONE Y
1 C##CLOUD$SERVICE DBMS_CLOUD_TYPES VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_AI VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_CORE VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_OCI_REGIONS VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_REPO VALID METADATA LINK Y
3 PUBLIC DBMS_CLOUD_TYPES VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_ATTR$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_SCHEMA$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CLOUD_STORE_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM VALID DATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS VALID DATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PARAM_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR_I1$ VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE_I1$ VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_I1$ VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_REST_API_RESULTS$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_STORE VALID DATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_STORE$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASKS VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS$ VALID METADATA LINK Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS_UNIQUE VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLEANUP VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TASK_ID VALID NONE Y
3 C##CLOUD$SERVICE DBMS_CLOUD_TYPES VALID METADATA LINK Y
128 rows selected.
SQL>
select owner, object_name, status, sharing, oracle_maintained from dba_objects where object_name like 'DBMS_CLOUD%';
SQL> alter session set container = freepdb1;
Session altered.
SQL> select owner, object_name, status, sharing, oracle_maintained from dba_objects where object_name like 'DBMS_CLOUD%';
OWNER OBJECT_NAME STATUS SHARING ORA
------------------ ------------------------------ -------- ---------------- ---
PUBLIC DBMS_CLOUD VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_AI VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_CORE VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_OCI_REGIONS VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_REPO VALID METADATA LINK Y
PUBLIC DBMS_CLOUD_TYPES VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_AI VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_ATTR$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_AI_PROFILE_SCHEMA$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITIES_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CAPABILITY VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CLOUD_STORE_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM VALID DATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CONFIG_PARAM$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_CORE VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_FILE_SYSTEM_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_INTERNAL VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_NOTIFICATION VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS VALID DATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_OCI_REGIONS_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_PARAM_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_ATTR_I1$ VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_FILE_I1$ VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_I1$ VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_PIPELINE_INTERNAL VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_REPO VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_REQUEST VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_REST_API_RESULTS$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_STORE VALID DATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_STORE$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASKS VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS$ VALID METADATA LINK Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLASS_UNIQUE VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK_CLEANUP VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_TASK_ID VALID NONE Y
C##CLOUD$SERVICE DBMS_CLOUD_TYPES VALID METADATA LINK Y
64 rows selected.
SQL>
begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('http','http_proxy'),
principal_name => 'C##CLOUD$SERVICE',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/
SQL> alter session set container = cdb$root;
Session altered.
SQL> begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('http','http_proxy'),
principal_name => 'C##CLOUD$SERVICE',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/ 2 3 4 5 6 7 8 9 10 11 12
PL/SQL procedure successfully completed.
SQL>
SQL> alter session set container = freepdb1;
Session altered.
SQL> begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('http','http_proxy'),
principal_name => 'C##CLOUD$SERVICE',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/ 2 3 4 5 6 7 8 9 10 11 12
PL/SQL procedure successfully completed.
SQL>
20.6で紹介されている検証用のスクリプトを実行します。
bash-4.4$ sqlplus / as sysdba @verify_dbms_cloud.sql
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Mar 27 04:56:04 2025
Version 23.7.0.25.01
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.7.0.25.01
old 1: CREATE OR REPLACE PROCEDURE &clouduser..GET_PAGE(url IN VARCHAR2) AS
new 1: CREATE OR REPLACE PROCEDURE C##CLOUD$SERVICE.GET_PAGE(url IN VARCHAR2) AS
Enter value for proxy_uri:
old 23: -- UTL_HTTP.SET_PROXY('&proxy_uri', NULL);
new 23: -- UTL_HTTP.SET_PROXY('', NULL);
Procedure created.
old 2: &clouduser..GET_PAGE('https://objectstorage.eu-frankfurt-1.oraclecloud.com');
new 2: C##CLOUD$SERVICE.GET_PAGE('https://objectstorage.eu-frankfurt-1.oraclecloud.com');
valid response
PL/SQL procedure successfully completed.
old 1: drop procedure &clouduser..GET_PAGE
new 1: drop procedure C##CLOUD$SERVICE.GET_PAGE
Procedure dropped.
SQL>
alter session set container = freepdb1;
create user testuser default tablespace users temporary tablespace temp identified by testuser;
alter user testuser quota unlimited on users;
grant connect, resource, db_developer_role to testuser;
grant execute on dbms_cloud to testuser;
grant execute on dbms_cloud_pipeline to testuser;
grant execute on dbms_cloud_repo to testuser;
grant execute on dbms_cloud_notification to testuser;
grant execute on dbms_cloud_ai to testuser;
SQL> alter session set container = freepdb1;
Session altered.
SQL> create user testuser default tablespace users temporary tablespace temp identified by testuser;
User created.
SQL> alter user testuser quota unlimited on users;
User altered.
SQL> grant connect, resource, db_developer_role to testuser;
Grant succeeded.
SQL> grant execute on dbms_cloud to testuser;
Grant succeeded.
SQL> grant execute on dbms_cloud_pipeline to testuser;
Grant succeeded.
SQL> grant execute on dbms_cloud_repo to testuser;
Grant succeeded.
SQL> grant execute on dbms_cloud_notification to testuser;
Grant succeeded.
SQL> grant execute on dbms_cloud_ai to testuser;
Grant succeeded.
SQL>
begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('http','http_proxy'),
principal_name => 'TESTUSER',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/
SQL> begin
dbms_network_acl_admin.append_host_ace(
host => '*',
ace => xs$ace_type(
privilege_list => xs$name_list('http','http_proxy'),
principal_name => 'TESTUSER',
principal_type => xs_acl.ptype_db
)
);
commit;
end;
/ 2 3 4 5 6 7 8 9 10 11 12
PL/SQL procedure successfully completed.
SQL>
% sql testuser/testuser@localhost/freepdb1
SQLcl: 木 3月 27 14:15:00 2025のリリース24.4 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.7.0.25.01
SQL>
create table emp (empno number primary key, ename varchar2(80), sal number, comm number);
SQL> create table emp (empno number primary key, ename varchar2(80), sal number, comm number);
Table EMPは作成されました。
SQL>
begin
dbms_cloud.create_credential(
credential_name => 'OPENAI_CRED'
,username => 'OPENAI'
,password => 'OpenAIのAPIキー'
);
end;
/
SQL> begin
2 dbms_cloud.create_credential(
3 credential_name => 'OPENAI_CRED'
4 ,username => 'OPENAI'
5 ,password => 'OpenAIのAPIキー'
6 );
7 end;
8* /
PL/SQLプロシージャが正常に完了しました。
SQL>
Select AIのプロファイルを作成します。
begin
dbms_cloud_ai.create_profile(
profile_name => 'OPENAI'
,attributes => '{"provider": "openai", "credential_name": "OPENAI_CRED",
"object_list": [{ "owner": "TESTUSER", "name": "EMP" }], "conversation": "true" }');
end;
/
SQL> begin
2 dbms_cloud_ai.create_profile(
3 profile_name => 'OPENAI'
4 ,attributes => '{"provider": "openai", "credential_name": "OPENAI_CRED",
5 "object_list": [{ "owner": "TESTUSER", "name": "EMP" }], "conversation": "true" }');
6 end;
7* /
PL/SQLプロシージャが正常に完了しました。
SQL>
作成したプロファイルをセットします。
begin
dbms_cloud_ai.set_profile('OPENAI');
end;
/
SQL> begin
2 dbms_cloud_ai.set_profile('OPENAI');
3 end;
4* /
PL/SQLプロシージャが正常に完了しました。
SQL>
セットされたプロファイルを確認します。
select dbms_cloud_ai.get_profile() from dual;
SQL> select dbms_cloud_ai.get_profile() from dual;
DBMS_CLOUD_AI.GET_PROFILE()
______________________________
"OPENAI"
SQL>
Select AIを呼び出してSQLを生成します。
select ai showsql how many employees exist;
SQL> select ai showsql how many employees exist;
RESPONSE
___________________________________
SELECT COUNT(*) AS num_employees
FROM "TESTUSER"."EMP"
SQL>
以上で、インストールしたDBMS_CLOUD関連パッケージの動作が確認できました。
utl_http.set_wallet('system:');
DBMS_CLOUD_REPOは以下の記事で使用しています。ローカルにインストールしたアプリケーションを動かしたところ、概ね動きました。