PL/SQL ¤Ç INSERT ¤ò¹Ô¤Ê¤¦

¥Æ¡¼¥Ö¥ëÄêµÁ

°Ê²¼¤Î¤è¤¦¤Ê¥ì¥¤¥¢¥¦¥È¤ÎÍøÍѼԥޥ¹¥¿É½¤ò»ÈÍѤ·¤Æ PL/SQL ¤Î¥µ¥ó¥×¥ë¤òºîÀ®¤¹¤ë¡£

ÆüËܸì̾¥«¥é¥à̾ÆþÎÏɬ¿Ü¥Ç¡¼¥¿¤Î·¿¤ÈÂ礭¤µ¾Êά»þ
ÍøÍѼԣɣÄUSER_IDYES¡¦4 ¥Ð¥¤¥È°ÊÆâ¤Îʸ»úÎó
ÉôÌçDEPT_NONO¡¦4 ¥Ð¥¤¥È°ÊÆâ¤Îʸ»úÎó
ÍøÍѼÔ̾USER_NAMENO¡¦32 ¥Ð¥¤¥È°ÊÆâ¤Îʸ»úÎó
ºîÀ®ÆüCREATED_ONNO¡¦ÆüÉÕ(Æü¡Ü»þ´Ö)SYSDATE
¹¹¿·ÆüMODIFIED_ONNO¡¦ÆüÉÕ(Æü¡Ü»þ´Ö)

DDL ¤Ï °Ê²¼¤Î¤È¤ª¤ê¡£

CREATE TABLE RIVUS.USER_MASTER
(
	USER_ID           VARCHAR2(4) NOT NULL,
	DEPT_NO           VARCHAR2(4),
	USER_NAME         VARCHAR2(32),
	CREATED_ON        DATE DEFAULT SYSDATE,
	MODIFIED_ON       DATE
);

PL/SQL ¤Ç INSERT ¤ò¼Â¹Ô¤¹¤ë

SQLPlus ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤«¤é SQL ¤ò¼Â¹Ô¤¹¤ë¤Î¤ÈÊѤï¤ê¤Ê¤¯µ­½Ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

SQL*Plus ¤Î¾ì¹ç¤Ë¤Ï¼Â¹Ô¤ÎÁ°¤Ë SET SERVEROUTPUT ON ¤ò¼Â¹Ô¤·¤Æ¤ª¤¯¡£

CREATE OR REPLACE PROCEDURE RIVUS.STEP01_INSERT
IS
BEGIN
	INSERT INTO USER_MASTER (
	        USER_ID, DEPT_NO, USER_NAME, CREATED_ON, MODIFIED_ON
	) VALUES (
	        '0020', '1001',
	        '¾®Àô ½ã°ì',
	        DEFAULT,
	        NULL
	) ;
	DBMS_OUTPUT.PUT_LINE('¥¤¥ó¥µ¡¼¥È¤·¤¿·ï¿ô¤Ï' || SQL%ROWCOUNT || '·ï¤Ç¤¹¡£');
	COMMIT ;
	DBMS_OUTPUT.PUT_LINE('COMMIT(SQL)¸å¤Î ROWCOUNT ¤Ï' || SQL%ROWCOUNT || '¤Ç¤¹¡£');
END;
/
-- ¤³¤Î¥×¥í¥·¡¼¥¸¥ã¤ò¼Â¹Ô¤·¤Æ¤ß¤ë¡£
CALL STEP01_INSERT() ;
¥¤¥ó¥µ¡¼¥È¤·¤¿·ï¿ô¤Ï1·ï¤Ç¤¹¡£
¥³¥ß¥Ã¥È(SQL)¼Â¹Ô¸å¤Î ROWCOUNT ¤Ï0¤Ç¤¹¡£
 
¥³¡¼¥ë¤¬´°Î»¤·¤Þ¤·¤¿¡£

¥½¡¼¥¹¥³¡¼¥É¤Î SQL%ROWCOUNT ¤Ï °ÅÌÛ¥«¡¼¥½¥ë SQL ¤È¡¢¤½¤Î°À­ ROWCOUNT ¤Ç¤¢¤ë¡£ ¤³¤Î PL/SQL ¤Î¥½¡¼¥¹¥³¡¼¥ÉÆâ¤Î INSERT ʸ¤ÏPL/SQL ¥¨¥ó¥¸¥ó¤Ç°ÅÌÛ¥«¡¼¥½¥ë¤ËÊÑ´¹¤µ¤ì¤Æ¤ª¤ê¡¢ ¼«Æ°Åª¤Ë ¥«¡¼¥½¥ë ¤Î¥ª¡¼¥×¥ó¡Á¥¯¥í¡¼¥º½èÍý¤Þ¤Ç¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤ë¡£

PL/SQL ¤Î INSERT ¤Ç RETURNING ¶ç¤ò»ÈÍѤ¹¤ë

RETURNING ¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç INSERT ¤·¤¿·ë²Ì¤ò SELECT ¤¹¤ë¤³¤È¤Ê¤¯¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
¤³¤ÎÎã¤Ç¤Ï¥Ç¥Õ¥©¥ë¥ÈÀ©Ìó¤Ë¤è¤Ã¤Æ¼«Æ°Åª¤ËºîÀ®Æü¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë CREATED_ON ¹àÌܤò¼èÆÀ¤·¤Æ¤¤¤ë¡£

CREATE OR REPLACE PROCEDURE RIVUS.STEP02_INSERT
IS
	vUser  USER_MASTER%ROWTYPE;
BEGIN
	INSERT INTO USER_MASTER (
	        USER_ID, DEPT_NO, USER_NAME, CREATED_ON, MODIFIED_ON
	) VALUES (
	        '0021', '1001',
	        '¾®Àô ½ã°ì',
	        DEFAULT,
	        NULL
	) 
	RETURNING USER_ID, DEPT_NO, USER_NAME, CREATED_ON, MODIFIED_ON INTO vUser;
 
	DBMS_OUTPUT.PUT_LINE('¥¤¥ó¥µ¡¼¥È¤·¤¿·ï¿ô¤Ï' || SQL%ROWCOUNT || '·ï¤Ç¤¹¡£');
	COMMIT ;
	DBMS_OUTPUT.PUT_LINE('COMMIT(SQL)¸å¤Î ROWCOUNT ¤Ï' || SQL%ROWCOUNT || '¤Ç¤¹¡£');
	DBMS_OUTPUT.PUT_LINE('¥¤¥ó¥µ¡¼¥È¤·¤¿ÆüÉÕ ¤Ï' || vUser.CREATED_ON || '¤Ç¤¹¡£');
END;
/


SQL INSERT ´ØÏ¢»ö¹à

¥¹¥Ý¥ó¥µ¡¼¥É ¥ê¥ó¥¯

IT¥¨¥ó¥¸¥Ë¥¢ ¥­¥ã¥ê¥¢¥¢¥Ã¥×¡¦Å¾¿¦¡¦µá¿Í¾ðÊó

Oracle & ITµ»½Ñ¼Ô ÀìÌç½ñ

¢£³¨¤Ç¸«¤Æ¤ï¤«¤ëOS/¥¹¥È¥ì¡¼¥¸/¥Í¥Ã¥È¥ï¡¼¥¯ ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¤³¤¦»
²Á³Ê: 2,310 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 2,310 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 2008-04-22
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 2 ·ï

¢£¥í¥¸¥«¥ë¡¦¥é¥¤¥Æ¥£¥ó¥° (BEST SOLUTION¡½LOGICAL COMMUNICATION
²Á³Ê: 2,310 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 1,700 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 2006-03-24
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 11 ·ï

¢£¥ª¥é¥¯¥ë¥Þ¥¹¥¿¡¼¶µ²Ê½ñGold Oracle Database 10g¡ÚDBA10g¡ÛÊÔ (
²Á³Ê: 4,725 ±ß ¡ÊÀǹþ¡Ë
¿·ÉÊ/¥æ¡¼¥º¥É²Á³Ê: 3,720 ±ß ¤è¤ê
¥ê¥ê¡¼¥¹: 2005-11-23
¥æ¡¼¥¶¡¼¥ì¥Ó¥å¡¼: 4 ·ï

ÆüËÜ¥ª¥é¥¯¥ë
¢£ ÆüËÜ¥ª¥é¥¯¥ë ³ô¼°²ñ¼Ò
¢£ ¥ª¥é¥¯¥ë¥Þ¥¹¥¿¡¼»ñ³Ê ¡Ê¥ª¥é¥¯¥ë¥Þ¥¹¥¿¡¼¤È¤Ï¡Ë
¢£ OTN Software Kit (³«È¯¼Ô¥é¥¤¥»¥ó¥¹)
Google