{"id":143,"date":"2017-06-29T17:45:40","date_gmt":"2017-06-29T09:45:40","guid":{"rendered":"https:\/\/www.espandy.com\/?p=143"},"modified":"2017-06-29T18:06:31","modified_gmt":"2017-06-29T10:06:31","slug":"oracle-%e8%b0%83%e7%94%a8-webservice-%e6%9c%8d%e5%8a%a1%ef%bc%8c%e7%ae%80%e8%a6%81%e8%af%b4%e6%98%8e","status":"publish","type":"post","link":"https:\/\/www.espandy.com\/?p=143","title":{"rendered":"oracle \u8c03\u7528 WebService \u670d\u52a1\uff0c\u7b80\u8981\u8bf4\u660e"},"content":{"rendered":"<h1>oracle \u8c03\u7528 WebService \u670d\u52a1\uff0c\u7b80\u8981\u8bf4\u660e<\/h1>\n<h3>\u73af\u5883\uff1aoracle10g, pl\/sql, dbws-callout-utility-10131.zip(java\u6269\u5c55\u5305)<\/h3>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">1.\u53bboracle\u5b98\u7f51\u4e0a\u4e0b\u8f7ddbws-callout-utility-10131.zip<\/strong><\/p>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">2.\u89e3\u538b\u540e\u653e\u5230oracle\u5b89\u88c5\u76ee\u5f55\u4e0b\u7684&lt;oracle_install_dir&gt;\/sqlj\/lib\u4e2d\uff1b<\/strong><em>(\u9700\u8981\u6ce8\u610f\uff0c\u64cd\u4f5c\u89d2\u8272\u62e5\u6709\u53ef\u5199\u6743\u9650)<\/em><\/p>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">3.\u5728\u547d\u4ee4\u884c\u4e2d\u5229\u7528loadjava\u547d\u4ee4(\u4e00\u822c\u5b89\u88c5\u5b8cjdk\u6216oracle\u4e4b\u540e\u5c31\u4f1a\u6709)\u5c06jar\u5305\u5bfc\u5165oracle\u5bf9\u5e94\u7684\u7528\u6237\u4e2d\uff1a<\/strong><\/p>\n<pre><code>loadjava -u user\/password@oracle -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar\r\n\r\n\u82e5\u4e3aSYS\u7528\u6237\uff0c\u547d\u4ee4\u4e3a\uff1a\r\n\r\nloadjava -u user\/password -r -v -f -genmissing -s -grant public dbwsclientws.jar dbwsclientdb102.jar\r\n<\/code><\/pre>\n<p><em style=\"margin-top: 0px;\">(\u9700\u8981\u6ce8\u610f\uff0c\u64cd\u4f5c\u89d2\u8272\u62e5\u6709\u53ef\u5199\u6743\u9650)<\/em><\/p>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">4.\u9a8c\u8bc1java\u5305\u662f\u5426\u6210\u529f\u52a0\u8f7d\u65b9\u6cd5\uff1a<\/strong><\/p>\n<pre><code>\u5728pl\/sql\u4e2d\u6572\u5165'sys.'\u82e5\u6ca1\u6709 'utl_dbws' \u663e\u793a,\u8868\u793a\u672a\u6210\u529f,\u8fd0\u884c\u4e4b\u524d\u4e0b\u8f7d\u7684\u5305\u4e2d\r\n'dbws-callout-utility-10131\/sqlj\/lib\/ utl_dbws_body.sql'\u53ca'utl_dbws_decl.sql'    \r\n\u5982\u679c'utl_dbws'\u663e\u793a,\u8868\u793a\u6210\u529f.\r\n<\/code><\/pre>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">5.\u7f16\u5199\u51fd\u6570<\/strong><\/p>\n<pre><code>create or replace function FUNC_GENERATE_LOGINNAME(xmlstring1 VARCHAR2)\r\n\r\nreturn VARCHAR2 \r\n\r\nAS\r\n\r\nl_service sys.utl_dbws.SERVICE;\r\n\r\nl_call sys.utl_dbws.call;\r\n\r\nl_result anydata;\r\n\r\nl_wsdl_url varchar2(1024);\r\n\r\nl_service_name varchar2(200);\r\n\r\nl_operation_name varchar2(200);\r\n\r\nl_input_params SYS.UTL_DBWS.anydata_list;\r\n\r\nbegin\r\n\r\nl_wsdl_url:='http:\/\/192.168.255.80:8081\/ServicePort?wsdl';\r\n\r\nl_service_name:='WebServiceImpl';\r\n\r\nl_operation_name:='echo';\r\n\r\nl_service:=sys.utl_dbws.create_service(wsdl_document_location=&gt;URIFACTORY.getUri(l_wsdl_url),service_name=&gt;l_service_name);\r\n\r\nl_call:=sys.utl_dbws.create_call(service_handle=&gt;l_service,port_name=&gt;null,operation_name=&gt;l_operation_name);\r\n\r\n  --l_input_params(1):= ANYDATA.ConvertVarchar2(xmlstring1);\r\n\r\nl_result := sys.UTL_DBWS.invoke(call_handle  =&gt; l_call,input_params =&gt; l_input_params);\r\n\r\nsys.utl_dbws.release_call(call_Handle =&gt; l_call);\r\n\r\nsys.utl_dbws.release_service(service_Handle =&gt; l_service);\r\n\r\nreturn anydata.AccessVarchar2(l_result);\r\n\r\nexception\r\n\r\n  when others then\r\n\r\n    return substr(sqlerrm,0,5000);\r\n\r\n END FUNC_GENERATE_LOGINNAME;\r\n<\/code><\/pre>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">\u5176\u4e2dl_input_params(1):= ANYDATA.ConvertVarchar2(xmlstring1)\u8868\u793a\u4f20\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\uff0c\u5982\u679c\u6709\u591a\u4e2a\u53c2\u6570\u53ef\u4ee5<\/strong><strong style=\"font-weight: bold;\">\u7c7b\u4f3cl_input_params(2):= ANYDATA.ConvertVarchar2(xmlstring2);<\/strong><strong style=\"font-weight: bold;\"> l_input_params(3):= ANYDATA.ConvertVarchar2(xmlstring3);<\/strong><strong style=\"font-weight: bold;\">\u4f9d\u6b64\u7c7b\u63a8\uff01<\/strong><strong style=\"font-weight: bold;\">\u4e5f\u53ef\u4ee5\u8f6c\u6210\u5176\u5b83\u7c7b\u578b\u4f8b:ANYDATA.ConvertNumber(xmlstring3)\u3001ANYDATA.ConvertDate\uff08xmlstring2\uff09<\/strong><\/p>\n<p><strong style=\"font-weight: bold; margin-top: 0px;\">6.\u770b\u7ed3\u679c<\/strong><\/p>\n<pre><code>select func_generate_loginname('xmlstring1') from dual;\r\n<\/code><\/pre>\n<p><em style=\"margin-top: 0px;\">xmlstring1 \u4e3a\u5165\u53c2\u53c2\u6570\uff0c\u6839\u636e\u9879\u76ee\u9700\u8981\uff0c\u5efa\u8bae\u591a\u4e2avarchar\u7c7b\u578b\u6700\u597d\u62fc\u6210json\u683c\u5f0f<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>oracle \u8c03\u7528 WebService \u670d\u52a1\uff0c\u7b80\u8981\u8bf4\u660e<br \/>\n\u73af\u5883\uff1aoracle10g, pl\/sql, dbws-callout-utility-10131.zip(java\u6269\u5c55\u5305)<\/p>\n<p>1.\u53bboracle\u5b98\u7f51\u4e0a\u4e0b\u8f7ddbws-callout-utility-10131.zip<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[13,14],"class_list":["post-143","post","type-post","status-publish","format-standard","hentry","category-tech","tag-oracle","tag-webservice"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/posts\/143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espandy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=143"}],"version-history":[{"count":1,"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/posts\/143\/revisions"}],"predecessor-version":[{"id":144,"href":"https:\/\/www.espandy.com\/index.php?rest_route=\/wp\/v2\/posts\/143\/revisions\/144"}],"wp:attachment":[{"href":"https:\/\/www.espandy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espandy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espandy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}