2022年12月10日土曜日

Gist上のコードを実行する

 このブログではコードのスニペットをGistに保存して、それを参照していることが多いです。記事の内容を確認するときに、Gistの内容をコピーしてSQLスクリプトとして実行するのは手間がかかるので、簡単なプロシージャを作ってみました。

DBMS_CLOUD_REPO.INSTALL_SQLを使っています。

プロシージャINSTALL_FROM_GISTを作成します。

create or replace procedure install_from_gist(
p_url in varchar2
)
as
l_source clob;
begin
l_source := apex_web_service.make_rest_request(
p_url => p_url
,p_http_method => 'GET'
);
dbms_cloud_repo.install_sql(
content => l_source
,stop_on_error => true
);
end;

Gistのview rawを開いて、

URLをコピーして、


プロシージャINSTALL_FROM_GISTを実行します。
begin
install_from_gist('コピーしたURL');
end;


以上です。

DBMS_CLOUD_REPOが使えるのはAutonomous Databaseだけだと思うので、使用できる環境は限られています。

INSTALL_FROM_GISTのコードもGistに載せていますが、このコードをINSTALL_FROM_GISTを使ってロードしようとすると、セッションが止まってしまうので要注意です。