Category Archives: oracle

「Oracle入門」loop、while、forでPROCEDUREを作成する

1.loop構文
loop
statements;
end loop;
サンプル
counter := 0;
loop
counter := counter + 1;
exit when counter = 10;
end loop;

2.while構文
while condition loop
statements
end loop;

サンプル
counter := 0;
while counter < 6 loop
counter := counter + 1;
end loop;

3.for構文
for loop_variable in [reverse] lower_bound.. upper_bounder loop
statements
end loop;
サンプル
for count2 in 1..10 loop
DBMS_OUTPUT.PUT_LINE(count2);
end loop;

「Oracle」インデックスの作成、削除

インデックス作成
CREATE INDEX student_tbl_idx ON student(stuname);

インデックスを削除
DROP INDEX student_tbl_idx;

UbuntuにJDK8をインストールするメモ

インストール
#sudo add-apt-repository ppa:webupd8team/java
#sudo apt update
#sudo apt install oracle-java8-installer
バージョンの確認
#java -version
#javac -version

「Oracle入門」スキーマ( CURRENT_SCHEMA)を変更する方法

1.デフォルトのスキーマを変更
SQL> ALTER SESSION SET CURRENT_SCHEMA=STUDENET_MANAGER ;

2.NLS環境変数 NLS_DATE_FORMATを変更
SQL> ALTER SESSION SET NLS_DATE_FORMAT = ‘DD-MON-YYYY HH24:MI:SS’;
SQL> SELECT SYSDATE FROM DUAL;

「Oracle入門」SELECT FOR UPDATEのサンプル

SQL構文
SELECT COL_W1,COL_W2 FROM CFT_TBL WHERE ROWNUM <= 500 FOR UPDATE SKIP LOCKED

「Oracle入門」現在日時を取得する方法

1.現在日時をTIMESTAMP型取得する
SELECT TO_CHAR(SYSTIMESTAMP, ‘YYYY/MM/DD HH24:MI:SS FF’) FROM dual

2.現在日時をDATE型で取得する
SELECT sysdate FROM dual;

「Oracle」タブ文字を出力する方法

SQL構文
SELECT B.ID, B.NAME||CHR(9)||B.ADDR,B.COMPANY
FROM ADDRESS_TBL B

「Oracle」triggerでカラムを更新するコード

サンプルコード

CREATE OR REPLACE TRIGGER trg_update_terminal_addr_hex

BEFORE UPDATE

ON r_tmnl_run

FOR EACH ROW

DECLARE

BEGIN

if(:old.TERMINAL_ID=:new.TERMINAL_ID)then

:new.terminal_addr_hex:=substr(:new.terminal_addr,1,4)|| lpad(trim(to_hex(substr(:new.terminal_addr,5,5))),4,’0′) ;

end if;

END;

「Oracle」triggerでカラムを追加するコード

サンプルコード

create or replace trigger trg_insert_terminal_addr_func

before insert

on r_tmnl_run

for each row

begin

:new.terminal_addr_hex:=substr(:new.terminal_addr,1,4)|| lpad(trim(to_hex(substr(:new.terminal_addr,5,5))),4,’0′) ;

END;

「Oracle」テーブルを排他モードでロックするサンプル

サンプル:
LOCK TABLE STUDENT_TBL
IN EXCLUSIVE MODE;

1 / 41234