亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? generator_api.htm

?? Oracle PL/SQL procedure generator (second generator type)
?? HTM
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
</FONT>
<P>
I can also make this the standard across all schemas with the following call: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PLGdoir.setretcd (PLGte.driver, tab=&gt;PLGdoir.c_global, sch=&gt;PLGdoir.c_global); </DIR>
</DIR>

</FONT>
<P>
This same pattern of setting values at different levels of the hierarchy is available in the following sections and will not be repeated. 
<P>&nbsp; 

<B><FONT  SIZE=4><P><A NAME="RetrievalOptions">Setting Additional Retrieval Options</A> 
</B></FONT>
<P>
This section documents options you can toggle to add to or reduce the number of code elements used to retrieve information from the table contents. 
<B><I>
<P>

<A NAME="GeneratingCOUNT">Generating COUNT functions</A> </B></I>
<P>
You can request generation of functions with return the COUNT of rows for: 

<UL>
<LI>The entire table </LI>
<LI>A single primary key (useful to know whether or not a primary key is present or valid) </LI>
<LI>A foreign key value (one function for each foreign key in the table)</LI>
</UL>

<P>
To generate these functions, call the following procedure: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setcountrows <BR>
  (drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); </DIR>
</DIR>

</FONT><P>To turn off generation of these functions, call the following procedure: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setnocountrows <BR>
  (drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); <DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>

<P>&nbsp; </DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</FONT>
<P>

<B><I><A NAME="insideSQL">Enabling Execution of Functions inside SQL</A> </B></I>
<P>
You can request that RESTRICT_REFERENCES pragmas are placed on functions generated into a package by calling the PLGdoir.setrestrictref procedure. The header for this program is:
<PRE>
   PROCEDURE PLGdoir.setrestrictref (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      );
</PRE>
You can disable the use of these pragmas by calling the norestrictref procedure:

   <PRE>PROCEDURE PLGdoir.nosetrestrictref (
      drv IN VARCHAR2,
      tab IN VARCHAR2,
      sch IN VARCHAR2 := NULL
      );
</PRE>
So if you wanted to enable all functions generated by the Table Encapsulator driver for use within SQL, across all tables in the SCOTT schema, you would execute this command:
<PRE>
PLGdoir.setrestrictref (PLGte.driver, PLGdoir.c_global, 'SCOTT');
</PRE>

<P>
<B><FONT  SIZE=4><P><A NAME="SettingPerformance">Setting Performance/Tracing Options</A> 
</B></FONT><P>PL/Generator offers a number of options which can improve the performance of your encapsulation: 

<UL>
<LI>Cache data in per-user PL/SQL tables to allow for faster lookups. </LI>
<LI>Create stand alone programs for update, insert and delete so that you can execute these actions through a standard API, but without having to load the entire encapsulation package into memory. </LI>
<LI>Work with cursor variables instead of PL/SQL records. This feature can both improve the performance of your application, but also make it possible to access the full API from within a JDBC environment. </LI>
<LI>Define additional cursors that employ a subset of columns from the table. This is useful when a table has many columns, but they are generally not needed for many query operations.</LI>
</UL>


<B><I><FONT ><P><A NAME="CachingData"> 
<P>Caching Data for Faster Access</A> </B></I></FONT>
<P>
If you have a table which is static during a user session and relatively small, you will achieve much better performance on lookups by loading the entire table into user memory (PL/SQL tables). Instead of going to the database, you simply grab the value from your own memory area. If the table is relatively large and a user tends to hit a certain subset (hotspot) in that table, you might alternately want to make previously-fetched rows available from user memory if that row is needed again.  
<P>
PL/Generator offers the ability to generate table encapsulators that implement both of these caching options. The fact that you are caching data is transparent to the user; the public interface is not affected. 
<P>
To specify that you want the entire table loaded upon instantiation of the package, use the setloadall program: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setloadall (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL);  </DIR>
</DIR>

</FONT><P>To specify that you want rows from the table loaded into memory as they are fetched, use the setloadincr program: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setloadincr (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL);  </DIR>
</DIR>

</FONT><P>To specify that you do not want any memory-based data reserved after fetching, use the setloadnone program: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setloadnone (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL);  </DIR>
</DIR>

</FONT>
<P>
Note: if your system has a large amount of memory, you could even consider caching large tables using this method. One customer of PL/Generator, for example, is using a Forte front-end, so that a single connection is maintained to the database, and transactions managed within that connection by Forte. Their plan is to load any and every static table, no matter how large, into memory, thereby dramatically improving application performance.  
</FONT><B><I>

<FONT ><P><A NAME="EmployingCursor">Employing Cursor Variables</A> 
</B></I></FONT>
<P>
You can advantage of cursor variables to return information from functions and cursors (instead of normal static cursors and %ROWTYPE record structures). 
<P>
These programs are available: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setcurvar (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); 
<P>PROCEDURE PLGdoir.setnocurvar (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); 
<P>FUNCTION PLGdoir.usecurvar (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL) <BR>
RETURN BOOLEAN; </DIR>
</DIR>

</FONT><P>To enable use of cursor variables for all tables in the scott schema, issue this command: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PLGdoir.setcurvar (PLGte.driver, PLGdoir.c_global, 'SCOTT'); </DIR>
</DIR>

</FONT><P>When you enable this option, the following code elements are created: 

<UL>
<LI>A function returning a cursor variable for every cursor declared in the package specification. </LI>
<LI>A function returning a cursor variable for every function which normally returns a %ROWTYPE or record type structure.</LI>
</UL>


<B><I>

<P>
<A NAME="RefiningCursor">Refining Cursor Select Lists</A></B></I>
<P>
The default set of cursors provided by PL/Generator return all columns for the following scenarios: 

<UL>
<LI>All rows, ordered by primary key </LI>
<LI>One row, for a specified primary key </LI>
<LI>All rows for a specific foreign key match. </LI>
<LI>In addition to these cursors, you can define additional cursors which employ the same WHERE and ORDER BY clauses as the default set, but have a modified list of columns/expressions returned by the cursor. You might do this when a table has many columns, but they are generally not needed for many query operations.</LI>
</UL>

<P>To define an additional set of cursors call the setcurinfo procedure: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setcurinfo (<BR>
   drv IN VARCHAR2,<BR>
   tab IN VARCHAR2, <BR>
   cur IN VARCHAR2,<BR>
   collist IN VARCHAR2,<BR>
   sch IN VARCHAR2 := NULL<BR>
   ); </DIR>
</DIR>

</FONT><P>where tab is the name of the table, cur is the "core" name of the cursor (this name will be supplemented by various suffixes and prefixes which make up the naming conventions), collist is the list of columns/expressions you want to use for this set of cursors, and sch is the schema (the default is the current schema, as returned by USER). 
<P>Suppose that I want to define a cursor for the employee table that returns only the compensation-related fields. I would then make a call as follows: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>BEGIN<BR>
   PLGdoir.setcurinfo (<BR>
   PLGte.driver, 'employee', 'comp', 'employee_id, salary, commission');<BR>
END;<BR>
/ </DIR>
</DIR>

</FONT><P>Note: in addition to the cursors, PL/Generator will also create procedures to open and close each of the cursors. 
</FONT><B><I>
<P>

<A NAME="GeneratingStand">Generating Stand-Alone Programs</A> </B></I>
<P>
When you execute or reference any element in a package, the entire package is loaded. Suppose that you want to insert a row into a table through the API, but that is <I>all</I> you need to do? You don't want to absorb the overhead of loading the package, but you don't want to bypass the API. Under these circumstances, you will want to request that stand-alone procedure be generated in addition to the packaged API.  
<P>
To turn on generation of stand-alone programs, call the following procedure: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setsaprogs (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); </DIR>
</DIR>

</FONT><P>To turn off generation of stand-alone programs, call the following procedure: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.setnosaprogs (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2 := NULL); </DIR>
</DIR>

</FONT><P>PL/Generator currently generates stand-alone update, insert and delete procedures. 

<B><I><P><A NAME="UsingPLVxmn">Using PLVxmn for execution tracing</A> </B></I>
<P>
The PLVxmn package offers a powerful execution trace/debug/production support facility. You can request that calls to PLVxmn.trace be embedded in your application by calling the following program: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE PLGdoir.usexmn (<BR>
   drv IN VARCHAR2, <BR>
   tab IN VARCHAR2, <BR>
   sch IN VARCHAR2); </DIR>
</DIR>

</FONT><P>For example, the following command requests that PLVxmn be used for all tables in your schema: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PLGdoir.usexmn (PLGte.driver, '%');  <DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>

<P>&nbsp; </DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>
</DIR>

</FONT><B><FONT  SIZE=4><P><A NAME="SettingNaming">Setting Naming Standards</A> </B></FONT>
<P>
PL/Generator offers a structure called an <I>alias</I>, which you can use to customize almost every aspect of the names and naming conventions for your generated code.  
<P>You will modify the default naming conventions (shown in the tables in this section) by calling the PLGdoir.setalias program in one of the following two forms: <DIR>
<DIR>

<FONT FACE="Courier,Courier New" SIZE=1><P>PROCEDURE setalias<BR>
  (drv IN VARCHAR2,<BR>
   tab IN VARCHAR2,<BR>
   orig IN VARCHAR2,<BR>
   subst IN VARCHAR2,<BR>
   descrip IN VARCHAR2,<BR>
   aliastype IN VARCHAR2,<BR>
   ident_query IN VARCHAR2,<BR>
   ident_list IN VARCHAR2,<BR>
   sch IN VARCHAR2 := NULL); 
<P>PROCEDURE setalias<BR>
  (drv IN VARCHAR2,<BR>
   tab IN VARCHAR2,<BR>
   orig IN VARCHAR2,<BR>
   subst IN VARCHAR2,<BR>
   sch IN VARCHAR2 := NULL); </DIR>
</DIR>

</FONT><P>You should only provide values for the tab (table name or global), orig (original value), subst (the substitute value) and sch (the schema or global) arguments.  

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷开心激情综合| 国产精品色在线| 欧美亚洲综合一区| 色欧美88888久久久久久影院| 成人av动漫网站| 成人天堂资源www在线| 成人美女在线视频| 99久久久久免费精品国产| 岛国精品在线观看| 99久久久久久| 欧美三片在线视频观看| 欧美伦理视频网站| 欧美大片在线观看| 蜜桃久久久久久| 人人精品人人爱| 国产在线乱码一区二区三区| 国产精品综合久久| 成人精品国产免费网站| 欧亚一区二区三区| 9191精品国产综合久久久久久| 7777精品伊人久久久大香线蕉最新版| 日韩精品一区在线| 国产女同性恋一区二区| 亚洲视频综合在线| 日韩国产一区二| 国产最新精品精品你懂的| 成人黄色在线看| 欧美日韩免费不卡视频一区二区三区| 777xxx欧美| 国产免费久久精品| 亚洲综合清纯丝袜自拍| 天天亚洲美女在线视频| 国产麻豆视频精品| 91在线免费播放| 欧美肥胖老妇做爰| 国产婷婷色一区二区三区四区| 中文字幕日韩精品一区| 日韩精品成人一区二区三区 | 成人av资源下载| 色吧成人激情小说| 日韩欧美国产不卡| 国产精品久久三| 日韩二区三区四区| 成人综合婷婷国产精品久久| 欧美亚洲一区三区| 国产日产亚洲精品系列| 亚洲激情在线播放| 久久国产免费看| bt7086福利一区国产| 欧美一区二区在线视频| 国产精品美女久久久久av爽李琼| 亚洲一卡二卡三卡四卡五卡| 国产精品一级在线| 欧美日韩成人综合| 成人欧美一区二区三区在线播放| 日韩电影在线免费看| 成人av在线看| 日韩欧美视频一区| 亚洲综合视频在线观看| 成人网在线免费视频| 91精品国产品国语在线不卡| 亚洲欧洲韩国日本视频| 另类欧美日韩国产在线| 在线免费观看日韩欧美| 欧美激情在线看| 精品影院一区二区久久久| 欧洲亚洲精品在线| 中文字幕乱码日本亚洲一区二区| 欧美伦理视频网站| 亚洲精品美腿丝袜| 国产精品996| 欧美电影免费观看高清完整版在线| 一区二区久久久久久| 成人性视频免费网站| 精品国产免费一区二区三区香蕉| 亚洲国产日韩a在线播放| 成人h精品动漫一区二区三区| 日韩欧美国产不卡| 日韩经典一区二区| 欧美色男人天堂| 亚洲精品视频一区二区| 成人午夜激情视频| 久久精品日产第一区二区三区高清版| 日韩精品91亚洲二区在线观看| 欧美在线视频不卡| 亚洲精品欧美在线| 91婷婷韩国欧美一区二区| 久久精品一区二区三区不卡牛牛| 免费久久99精品国产| 欧美男人的天堂一二区| 一区二区三区成人在线视频| 国产成人一级电影| 26uuu精品一区二区| 九色porny丨国产精品| 欧美成人猛片aaaaaaa| 日韩电影一二三区| 色素色在线综合| 无码av免费一区二区三区试看| 欧美高清性hdvideosex| 国产伦精品一区二区三区免费迷| 日韩一区二区视频在线观看| 偷窥少妇高潮呻吟av久久免费| 欧亚一区二区三区| 亚洲一区二区三区四区五区黄 | 99re热这里只有精品免费视频| 欧美国产日韩a欧美在线观看 | 久久久久久久久伊人| 精品午夜一区二区三区在线观看| 日韩一级精品视频在线观看| 麻豆成人av在线| 精品久久一区二区三区| 国产一区二区三区久久悠悠色av| 国产亚洲成aⅴ人片在线观看| 国产成人av一区二区三区在线 | 亚洲老妇xxxxxx| 五月天中文字幕一区二区| 欧美日韩免费电影| 欧美日韩一区二区在线观看视频| 精品在线一区二区| 午夜a成v人精品| 亚洲乱码日产精品bd| 亚洲综合激情小说| 日韩伦理av电影| 日韩免费成人网| 色婷婷综合久久久中文字幕| 91美女片黄在线观看91美女| 制服视频三区第一页精品| 日本三级亚洲精品| 久久久久久免费网| 99久久久国产精品| 香蕉av福利精品导航| 日韩精品一区二区三区视频在线观看 | 国产欧美日韩精品a在线观看| 成人app网站| 亚洲午夜电影在线| 欧美电视剧免费全集观看| 国产精品亚洲а∨天堂免在线| 亚洲视频在线一区| 91精品国产综合久久蜜臀| 国产精品1区2区3区| 亚洲男同1069视频| 欧美一区二区观看视频| 国产99久久久国产精品潘金| 亚洲色图19p| 日韩一区二区三区在线观看| 高潮精品一区videoshd| 亚洲一区二区黄色| 久久免费的精品国产v∧| 91麻豆免费看| 久久99精品久久久久久久久久久久| 国产精品国产精品国产专区不片| 欧美日韩国产高清一区二区 | 欧洲视频一区二区| 激情丁香综合五月| 一区二区国产视频| 日韩精品影音先锋| 欧洲av在线精品| 国产精品白丝jk黑袜喷水| 亚洲一线二线三线久久久| 久久久久久综合| 欧美日韩电影在线播放| 粉嫩aⅴ一区二区三区四区五区| 亚洲电影一区二区三区| 国产人成亚洲第一网站在线播放 | 日韩精品一区二区在线| 色综合网色综合| 国产精品911| 奇米精品一区二区三区在线观看一| 国产精品欧美一区喷水| 欧美va亚洲va香蕉在线| 在线观看网站黄不卡| 成人午夜私人影院| 蜜臀精品一区二区三区在线观看| 亚洲男人都懂的| 国产亚洲欧美色| 欧美电影免费观看高清完整版| 欧美性淫爽ww久久久久无| jizz一区二区| 九色porny丨国产精品| 日韩福利电影在线| 亚洲愉拍自拍另类高清精品| 国产精品女同一区二区三区| 精品国产伦一区二区三区免费| 欧美三级一区二区| 91亚洲精华国产精华精华液| 紧缚奴在线一区二区三区| 天堂成人国产精品一区| 亚洲精品免费看| 亚洲欧美视频在线观看| 国产精品系列在线| 久久久久久久久久电影| 精品国产一区二区在线观看| 欧美电影影音先锋| 欧美亚洲日本国产| 色综合久久精品| 99久久99久久精品国产片果冻| 亚洲国产成人在线| 成人美女在线视频| 国产欧美一区二区三区沐欲| 欧美一二三在线|