ねら~ITエンジニア雑記

やきうのお兄ちゃんが綴るOracle Databaseメインのブログ

PL/SQL

CLOB型の(文字数ではなく)バイト数を返却するファンクションを自作(Oracle Database)

昔の記事(https://gonsuke777.hatenablog.com/entry/20150129/1422535354)が間違っていたので、訂正を兼ねた記事を作成彡(゚)(゚) CLOB型の(文字数ではなく)バイト数を返却するファンクションを自作してみます。 CONVERTTOBLOBプロシージャでCLOB型をBLOB型…

ALTER SYSTEM KILL SESSION…"だけ"の権限付与を12c新機能のCode Based Access Control+実行者権限プロシージャで実現してみる。(Oracle Database)

前回のエントリ gonsuke777.hatenablog.com からの続き。 Qiita の @tlokweng さんから 12c新機能のCode Based Access Control なるものの存在を教えて頂きますた彡(゚)(゚)ALTER SYSTEM KILL SESSION…によるユーザーセッションの切断は許可したいけど、 ALTER…

ALTER SYSTEM KILL SESSION…"だけ"の権限付与を定義者権限のプロシージャで実現してみる。(Oracle Database)

ALTER SYSTEM KILL SESSION…によるユーザーセッションの切断は許可したいけど、 ALTER SYSTEM権限の付与(GRANT)は範囲が広過ぎる、権限が強過ぎる。 ALTER SYSTEM KILL SESSIONだけ許可したい……てな要件を、 定義者権限(AUTHID DEFINER)のプロシージャで実現…

PL/SQLのコレクション と 12c新機能のWITH句ファンクション で IN句1000個の壁(ORA-1795エラー)を回避/克服してみる。

Oracle Database では IN句に1000個以上の値を指定すると、ORA-1795エラーが発生してしまいます。 SQL> SELECT COUNT(*) FROM TBL_X T1 2 WHERE C1 IN ( 3 1 4 , 2 5 , 3 : (中略) : 4001 ,3999 4002 ,4000 4003 ); ,1001 * ERROR at line 1003: ORA-01795: …

Oracle Database でリテラルの文字列配列をTABLEファンクションでレコードとして返す。

文字列配列のTYPE定義⇒TABLEファンクションでイケるやで彡(゚)(゚) CREATE OR REPLACE TYPE tp_v_array IS TABLE OF VARCHAR2(4000); / SELECT * FROM TABLE(tp_v_array('a', 'b', 'c', 'xxx', 'ZZZ')); 結果は以下の通り。 SQL> CREATE OR REPLACE TYPE tp_v_…

DBMS_LOB.LoadClobFromFileプロシージャを使ってテキストファイルを Oracle Database の CLOB型列 に ロードする。

表題の通り、DBMS_LOB.LOADCLOBFROMFILEプロシージャ で テキストファイル を CLOB型列 に ロードするやで彡(゚)(゚)まずCLOB型の列を持つテーブルとディレクトリ・オブジェクトを作ります。 CONNECT AYSHIBAT/xxxxxxxx CREATE TABLE TEST_CLOB ( C1 NUMBER , …

PL/SQL で ズンドコキヨシ

ズンドコキヨシまとめ http://qiita.com/shunsugai@github/items/971a15461de29563bf90 と云う訳(?)で PL/SQL で ズンドコキヨシ を作って見た。(力技で)すまんな。彡(-)(-) ワンライナーでやっている猛者も何人か居るけど、 ワイにはこれ位が限界や……彡(-)(…