m2

oracle

自動型変換

ちょっとおどろいた。 BEGIN DBMS_OUTPUT.PUT_LINE('-- START --'); IF 1 = '1' THEN DBMS_OUTPUT.PUT_LINE('へっぉ!をrld!'); END IF; DBMS_OUTPUT.PUT_LINE('-- END --'); END; -- START -- へっぉ!をrld! -- END --

同じ「SELECT 〜 INTO」でも、「BULK COLLECT INTO」の場合は 0 件でも NO_DATA_FOUND が起きない

DECLARE TYPE XX IS TABLE OF CHAR(1) INDEX BY BINARY_INTEGER; x XX; BEGIN SELECT 'X' BULK COLLECT INTO x FROM DUAL WHERE 1 = 0; DBMS_OUTPUT.PUT_LINE (x.COUNT); -- 0 END;

PL/SQL で continue っぽいことをやる

BEGIN FOR i IN 1..20 LOOP IF i < 10 THEN GOTO end_loop; END IF; DBMS_OUTPUT.PUT_LINE(i); <<end_loop>> NULL; -- ラベルの後には実行可能なコードが必要 END LOOP; END; How to use "continue" in a pl/sql for-loop http://www.experts-exchange.com/Databases/O</end_loop>…

Oracle の「= null」でハマる

たしか db2 は「XXX = null」は文法エラー(「is null」を使う) SQLServer は「XXX = null」と「XXX is null」は等価 だったと記憶しています。(間違ってたらゴメンナサイ) んで Oracle の場合は文法エラーにならないのでてっきり 2 と同じだろうと思ったら、…

Oracleの不思議

SQL> select Coalesce('','null!!') from dual;COALES - null!!SQL>