{"id":569,"date":"2015-06-11T16:43:49","date_gmt":"2015-06-11T08:43:49","guid":{"rendered":"http:\/\/www.royalwzy.com\/?p=569"},"modified":"2015-09-10T21:53:02","modified_gmt":"2015-09-10T13:53:02","slug":"%e5%88%9b%e5%bb%ba%e5%b8%a6%e5%8f%82%e6%95%b0%e7%9a%84%e8%a7%86%e5%9b%be","status":"publish","type":"post","link":"http:\/\/www.royalwzy.com\/?p=569","title":{"rendered":"\u521b\u5efa\u5e26\u53c2\u6570\u7684\u89c6\u56fe"},"content":{"rendered":"<p>PROMPT CREATE OR REPLACE PACKAGE pkg_session<\/p>\n<p>CREATE OR REPLACE PACKAGE pkg_session IS<br \/>\nTYPE parm_type IS TABLE OF varchar2(1000) index BY VARCHAR2(30);<br \/>\nPROCEDURE set_val(p_idx IN VARCHAR2,p_value IN VARCHAR2);<br \/>\nPROCEDURE set_val(p_idx IN VARCHAR2,p_value IN NUMBER);<br \/>\nPROCEDURE set_val(p_idx IN VARCHAR2,p_value IN DATE);<br \/>\nFUNCTION  get_val(p_idx IN VARCHAR2) RETURN VARCHAR2 ;<br \/>\nFUNCTION  get_val_number(p_idx IN VARCHAR2) RETURN NUMBER;<br \/>\nFUNCTION  get_val_date(p_idx IN VARCHAR2) RETURN DATE;<br \/>\nPRAGMA RESTRICT_REFERENCES(get_val,WNDS,WNPS);<br \/>\nPRAGMA RESTRICT_REFERENCES(get_val_number,WNDS,WNPS);<br \/>\nPRAGMA RESTRICT_REFERENCES(get_val_date,WNDS,WNPS);<br \/>\nEND pkg_session;<br \/>\n\/<\/p>\n<p>CREATE OR REPLACE PACKAGE BODY pkg_session IS<br \/>\nsv_parameters parm_type;<br \/>\nPROCEDURE set_val(p_idx IN VARCHAR2,p_value IN VARCHAR2)<br \/>\nIS<br \/>\nBEGIN<br \/>\n   sv_parameters(TRIM(UPPER(p_idx))) := SUBSTR(p_value,1,1000);<br \/>\n   RETURN;<br \/>\nEND set_val;<\/p>\n<p>PROCEDURE set_val(p_idx IN VARCHAR2,p_value IN NUMBER)<br \/>\nIS<br \/>\nBEGIN<br \/>\n   set_val(p_idx,TO_CHAR(p_value));<br \/>\n   RETURN;<br \/>\nEND set_val;<\/p>\n<p>PROCEDURE set_val(p_idx IN VARCHAR2,p_value IN DATE)<br \/>\nIS<br \/>\nBEGIN<br \/>\n   set_val(p_idx,TO_CHAR(p_value,&#8217;YYYYMMDDHH24MISS&#8217;));<br \/>\n   RETURN;<br \/>\nEND set_val;<\/p>\n<p>FUNCTION  get_val(p_idx IN VARCHAR2) RETURN VARCHAR2<br \/>\nIS<br \/>\nBEGIN<br \/>\n   RETURN sv_parameters(TRIM(UPPER(p_idx)));<br \/>\nEXCEPTION<br \/>\n   WHEN NO_DATA_FOUND THEN<br \/>\n        RETURN NULL;<br \/>\nEND get_val;<\/p>\n<p>FUNCTION  get_val_number(p_idx IN VARCHAR2) RETURN NUMBER<br \/>\nIS<br \/>\nBEGIN<br \/>\n   RETURN TO_NUMBER(get_val(p_idx));<br \/>\nEND get_val_number;<\/p>\n<p>FUNCTION  get_val_date(p_idx IN VARCHAR2) RETURN DATE<br \/>\nIS<br \/>\nBEGIN<br \/>\n   RETURN TO_DATE(get_val(p_idx),&#8217;YYYYMMDDHH24MISS&#8217;);<br \/>\nEND get_val_date;<\/p>\n<p>END pkg_session;<br \/>\n\/<\/p>\n<p>CREATE OR REPLACE VIEW VW_TEST<br \/>\nAS SELECT * FROM t WHERE ROWNUM&lt;=pkg_session.get_val_number(&#039;P_ROWNUM&#039;);<\/p>\n<p>&#8212; \u672a\u8bbe\u53c2\u6570\u65f6\u6ca1\u6709\u6570\u636e<br \/>\nSELECT * FROM VW_TEST;<\/p>\n<p>&#8212; \u8bbe\u7f6e\u53c2\u6570\uff1a<\/p>\n<p>EXEC pkg_session.set_val(&#039;P_ROWNUM&#039;,10);<\/p>\n<p>&#8212; \u4ee5\u4e0b\u4f1a\u8fd4\u56de10\u884c\uff1a<br \/>\nSELECT * FROM VW_TEST;<\/p>\n<p>&#8211;\u4e24\u4e2a\u6761\u4ef6 \u5e76\u4e14\u5f53\u4e0d\u8bbe\u7f6e\u503c\u7684\u65f6\u5019\u4e0d\u542f\u7528<br \/>\nCREATE OR REPLACE VIEW VW_TEST2<br \/>\nAS SELECT * FROM t WHERE ROWNUM exec pkg_session.set_val(&#8216;P_NAME&#8217;,&#8217;UCJMH&#8217;);<\/p>\n<p>PL\/SQL procedure successfully completed.<\/p>\n<p>SQL&gt; select * from vw_test2;<\/p>\n<p>USERNAME<br \/>\n&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nUCJMH<br \/>\n\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ea\u4f1a\u6709\u4e00\u884c\u6570\u636e\u4e86<\/p>\n","protected":false},"excerpt":{"rendered":"<p>PROMPT CREATE OR REPLACE PACKAGE pkg_session CREATE OR  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[34,2],"class_list":["post-569","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-oracle","tag-oracle_basics"],"_links":{"self":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=569"}],"version-history":[{"count":1,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/569\/revisions"}],"predecessor-version":[{"id":894,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=\/wp\/v2\/posts\/569\/revisions\/894"}],"wp:attachment":[{"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.royalwzy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}