三流備忘録OracleのSQL PL/SQL 関数 ついての備忘録
ホーム >> PL/SQL備忘録 >> 値の代入

値の代入

値の代入


--【変数宣言】
v_hoge VARCHAR2(20);
i_hoge INTEGER :=0;

--【代入】
v_hoge := 'hoge';
v_hoge := v_hoge || 'hoge';

i_hoge := 10 * 3 ;
i_hoge := i_hoge * 2;

--【出力】
DBMS_OUTPUT.PUTLINE('v_hoge=' || v_hoge);
DBMS_OUTPUT.PUTLINE('i_hoge=' || i_hoge);

--【出力結果】
v_hoge=hogehoge
i_hoge=60

ブール値の代入

--【変数宣言】
b_hoge BOOLEAN;

--【代入】
b_hoge := FALSE;

SQL問い合わせ結果の代入(SELECT INTO)

DECLARE
	w_hogeid 	HOGE.hogeid%TYPE;
	w_hogename	HOGE.hogename%TYPE;
BEGIN
	
	/*****************************************************************
	 SELECT の結果が複数行の場合にはエラーになります。
	/*****************************************************************
	SELECT hogeid,hogename
	INTO w_hogeid,w_hogename
		FROM HOGE
		WHERE hogeid = 1;

	DBMS_OUTPUT.PUTLINE('w_hogeid=' || w_hogeid);
	DBMS_OUTPUT.PUTLINE('w_hogeid=' || w_hogename);
END;

SQL問い合わせ結果の代入(BULK COLLECT)

CREATE OR REPLACE PROCEDURE DSNEOETS.TEST_BULKCOLLECT

IS	
	/* コレクション宣言 */
	TYPE hoge_type1 IS TABLE OF TBL_HOGE.HOGE_ID%TYPE;
	TYPE hoge_type2 IS TABLE OF TBL_HOGE.HOGE_NAME%TYPE;
	
	HOGE_DATA1 hoge_type1;
	HOGE_DATA2 hoge_type2;
	
	cnt INTEGER;
BEGIN
	
	/* 取得 */
	SELECT 	HOGE_ID,HOGE_NAME
	BULK COLLECT INTO HOGE_DATA1,HOGE_DATA2
	FROM 	TBL_HOGE;
	
	cnt := HOGE_DATA1.first;
	
	/* 結果出力 */
	WHILE cnt IS NOT NULL 
	LOOP
	
		DBMS_OUTPUT.PUT_LINE('要素:' || HOGE_DATA1(cnt));
		DBMS_OUTPUT.PUT_LINE('要素:' || HOGE_DATA2(cnt));
		
		cnt := HOGE_DATA1.next(cnt);
		
	END LOOP;

END;