{"id":1066,"date":"2012-10-11T12:55:15","date_gmt":"2012-10-11T03:55:15","guid":{"rendered":"http:\/\/auctionpro.co.kr\/?p=1066"},"modified":"2012-10-11T12:55:15","modified_gmt":"2012-10-11T03:55:15","slug":"oracledataadapter-%ed%81%b4%eb%9e%98%ec%8a%a4","status":"publish","type":"post","link":"https:\/\/www.auctionpro.co.kr\/?p=1066","title":{"rendered":"OracleDataAdapter \ud074\ub798\uc2a4"},"content":{"rendered":"<p>.NET Framework Data Provider for Oracle\uc740 SQL \ubc30\uce58 \ubb38\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc5ec\ub7ec\u00a0<strong>REF CURSOR<\/strong>\u00a0\ucd9c\ub825 \ub9e4\uac1c \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac01\u00a0<strong>DataTable<\/strong>\uc5d0 \uc788\ub294<strong>DataSet<\/strong>\uc744 \ucc44\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9e4\uac1c \ubcc0\uc218\ub97c \uc815\uc758\ud558\uace0 \ucd9c\ub825 \ub9e4\uac1c \ubcc0\uc218\ub85c \ud45c\uc2dc\ud55c \ub2e4\uc74c\u00a0<strong>REF CURSOR<\/strong>\u00a0\ub370\uc774\ud130 \ud615\uc2dd\uc73c\ub85c \ub098\ud0c0\ub0c5\ub2c8\ub2e4. Oracle\uc740 SQL \ubb38\uc774 \uc2e4\ud589\ub420 \ub54c \ud14c\uc774\ube14 \uc774\ub984\uacfc \uc5f4 \uc774\ub984\uc744 \ud655\uc778\ud558\ub294 \ub370 \ud544\uc694\ud55c \uc815\ubcf4\ub97c \uc81c\uacf5\ud558\uc9c0 \uc54a\uc73c\ubbc0\ub85c\u00a0<strong>OracleDataAdapter<\/strong>\uac00 \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\uc5d0\uc11c \ubc18\ud658\ud558\ub294\u00a0<strong>REF CURSOR<\/strong>\u00a0\ub9e4\uac1c \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ucc44\uc6cc\uc9c8 \ub54c\u00a0<strong>Update<\/strong>\u00a0\uba54\uc11c\ub4dc\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c C# \uc608\uc81c\uc5d0\uc11c\ub294 \uc774 \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\ub97c \ub9cc\ub4e0 \uac83\uc73c\ub85c \uac00\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>Oracle \uc11c\ubc84\uc5d0 \ub2e4\uc74c Oracle \ud328\ud0a4\uc9c0\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<div>\n<div>\n<div id=\"CodeSnippetContainerCode_f2269947-8e34-45b0-9c55-3d4e2285765f\" dir=\"ltr\">\n<div>\n<pre>CREATE OR REPLACE PACKAGE CURSPKG AS \r\n   TYPE T_CURSOR IS REF CURSOR; \r\n   PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER, \r\n      IO_CURSOR OUT T_CURSOR); \r\n   PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR, \r\n      DEPTCURSOR OUT T_CURSOR);\r\nEND CURSPKG;\r\n\/<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Oracle \uc11c\ubc84\uc5d0 \ub2e4\uc74c Oracle \ud328\ud0a4\uc9c0 \ubcf8\ubb38\uc744 \ub9cc\ub4ed\ub2c8\ub2e4.<\/p>\n<div>\n<div><\/div>\n<div>\n<div><\/div>\n<div id=\"CodeSnippetContainerCode_65957d86-1638-4441-a00c-988a6b79b5f4\" dir=\"ltr\">\n<div>\n<pre>CREATE OR REPLACE PACKAGE BODY CURSPKG AS \r\n    PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER, \r\n                               IO_CURSOR OUT T_CURSOR) \r\n    IS \r\n        V_CURSOR T_CURSOR; \r\n    BEGIN \r\n        IF N_EMPNO &lt;&gt; 0 THEN \r\n             OPEN V_CURSOR FOR \r\n             SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME \r\n                  FROM EMP, DEPT \r\n                  WHERE EMP.DEPTNO = DEPT.DEPTNO \r\n                        AND EMP.EMPNO = N_EMPNO; \r\n        ELSE \r\n             OPEN V_CURSOR FOR \r\n             SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME \r\n                  FROM EMP, DEPT \r\n                  WHERE EMP.DEPTNO = DEPT.DEPTNO; \r\n        END IF; \r\n        IO_CURSOR := V_CURSOR; \r\n    END OPEN_ONE_CURSOR; \r\n    PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR, \r\n                                DEPTCURSOR OUT T_CURSOR) \r\n    IS \r\n        V_CURSOR1 T_CURSOR; \r\n        V_CURSOR2 T_CURSOR; \r\n    BEGIN \r\n        OPEN V_CURSOR1 FOR SELECT * FROM EMP; \r\n        OPEN V_CURSOR2 FOR SELECT * FROM DEPT; \r\n        EMPCURSOR  := V_CURSOR1; \r\n        DEPTCURSOR := V_CURSOR2; \r\n    END OPEN_TWO_CURSORS; \r\nEND CURSPKG;\r\n \/<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\ub2e4\uc74c C# \uc608\uc81c\uc5d0\uc11c\ub294 \uc800\uc7a5 \ud504\ub85c\uc2dc\uc800\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud14c\uc774\ube14 \ubc0f \uc5f4 \uc815\ubcf4\ub97c \uac00\uc838\uc624\ub294 \ubc29\ubc95\uc744 \ubcf4\uc5ec \uc90d\ub2c8\ub2e4.<\/p>\n<div>\n<div>\n<div dir=\"ltr\"><a>C#<\/a><\/div>\n<\/div>\n<div>\n<div id=\"CodeSnippetContainerCode_5646ccf5-6202-4695-9ce8-1db333b99da0\" dir=\"ltr\">\n<div>\n<pre>\/\/ GetConnectionString() returns a connection string for\r\n\/\/ the data source.\r\n\r\nstring connString = GetConnectionString();\r\nDataSet ds = new DataSet();\r\nOracleConnection conn = new OracleConnection(connString);\r\nOracleCommand cmd = conn.CreateCommand();\r\n\r\ncmd.CommandText = \"CURSPKG.OPEN_TWO_CURSORS\";\r\ncmd.CommandType = CommandType.StoredProcedure;\r\ncmd.Parameters.Add(\"EMPCURSOR\", OracleType.Cursor).Direction = \r\n       ParameterDirection.Output;\r\ncmd.Parameters.Add(\"DEPTCURSOR\", OracleType.Cursor).Direction = \r\n       ParameterDirection.Output;\r\n\r\nOracleDataAdapter da = new OracleDataAdapter(cmd);\r\nda.TableMappings.Add(\"Table\", \"Emp\");\r\nda.TableMappings.Add(\"Table1\", \"Dept\");\r\nda.Fill(ds);\r\n\r\nds.Relations.Add(\"EmpDept\", ds.Tables[\"Dept\"].Columns[\"Deptno\"], \r\n      ds.Tables[\"Emp\"].Columns[\"Deptno\"], false);<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>.NET Framework Data Provider for Oracle\uc740 SQL \ubc30\uce58 \ubb38\uc744 \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \uc5ec\ub7ec\u00a0REF CURSOR\u00a0\ucd9c\ub825 \ub9e4\uac1c \ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uac01\u00a0DataTable\uc5d0 \uc788\ub294DataSet\uc744 \ucc44\uc6b8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9e4\uac1c \ubcc0\uc218\ub97c \uc815\uc758\ud558\uace0 <a class=\"mh-excerpt-more\" href=\"https:\/\/www.auctionpro.co.kr\/?p=1066\" title=\"OracleDataAdapter \ud074\ub798\uc2a4\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[10],"tags":[],"class_list":["post-1066","post","type-post","status-publish","format-standard","hentry","category-devc"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1066","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1066"}],"version-history":[{"count":0,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/1066\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.auctionpro.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}