<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FFunction_Procedure_Packages%2FPackage_Body</id>
		<title>Oracle PL/SQL Tutorial/Function Procedure Packages/Package Body - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://sqle.ru/index.php?action=history&amp;feed=atom&amp;title=Oracle_PL%2FSQL_Tutorial%2FFunction_Procedure_Packages%2FPackage_Body"/>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Function_Procedure_Packages/Package_Body&amp;action=history"/>
		<updated>2026-04-03T23:13:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Function_Procedure_Packages/Package_Body&amp;diff=4400&amp;oldid=prev</id>
		<title> в 13:45, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Function_Procedure_Packages/Package_Body&amp;diff=4400&amp;oldid=prev"/>
				<updated>2010-05-26T13:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 13:45, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Function_Procedure_Packages/Package_Body&amp;diff=4401&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://sqle.ru/index.php?title=Oracle_PL/SQL_Tutorial/Function_Procedure_Packages/Package_Body&amp;diff=4401&amp;oldid=prev"/>
				<updated>2010-05-26T10:11:47Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Call function in a Package==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table company(&lt;br /&gt;
  2     product_id        number(4)    not null,&lt;br /&gt;
  3     company_id          NUMBER(8)    not null,&lt;br /&gt;
  4     company_short_name  varchar2(30) not null,&lt;br /&gt;
  5     company_long_name   varchar2(60)&lt;br /&gt;
  6  );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1001,&amp;quot;A Inc.&amp;quot;,&amp;quot;Long Name A Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1002,&amp;quot;B Inc.&amp;quot;,&amp;quot;Long Name B Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(1,1003,&amp;quot;C Inc.&amp;quot;,&amp;quot;Long Name C Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1004,&amp;quot;D Inc.&amp;quot;,&amp;quot;Long Name D Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1005,&amp;quot;E Inc.&amp;quot;,&amp;quot;Long Name E Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into company values(2,1006,&amp;quot;F Inc.&amp;quot;,&amp;quot;Long Name F Inc.&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3    FUNCTION getName(ip_product_id NUMBER,ip_company_id NUMBER)&lt;br /&gt;
  4    RETURN VARCHAR2;&lt;br /&gt;
  5    PRAGMA RESTRICT_REFERENCES(getName,WNDS,WNPS);&lt;br /&gt;
  6  END myPackage;&lt;br /&gt;
  7  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3    FUNCTION getName(ip_product_id NUMBER,ip_company_id NUMBER)&lt;br /&gt;
  4    RETURN VARCHAR2&lt;br /&gt;
  5    IS&lt;br /&gt;
  6      v_name VARCHAR2(120);&lt;br /&gt;
  7    BEGIN&lt;br /&gt;
  8       SELECT &amp;quot;Org Name: (Short) &amp;quot;||company_short_name||&amp;quot; (Long) &amp;quot;||company_long_name&lt;br /&gt;
  9       INTO v_name&lt;br /&gt;
 10       FROM company&lt;br /&gt;
 11       WHERE product_id = ip_product_id&lt;br /&gt;
 12       AND company_id = ip_company_id;&lt;br /&gt;
 13       RETURN (v_name);&lt;br /&gt;
 14    END getName;&lt;br /&gt;
 15  END myPackage;&lt;br /&gt;
 16  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; -- Calling the above packaged function from SQL&lt;br /&gt;
SQL&amp;gt; SELECT myPackage.getName(product_id,company_id) &amp;quot;Formatted Org Name&amp;quot;&lt;br /&gt;
  2  FROM company&lt;br /&gt;
  3  ORDER BY product_id,company_id;&lt;br /&gt;
Formatted Org Name&lt;br /&gt;
----------------------------------------------------------------------&lt;br /&gt;
Org Name: (Short) A Inc. (Long) Long Name A Inc.&lt;br /&gt;
Org Name: (Short) B Inc. (Long) Long Name B Inc.&lt;br /&gt;
Org Name: (Short) C Inc. (Long) Long Name C Inc.&lt;br /&gt;
Org Name: (Short) D Inc. (Long) Long Name D Inc.&lt;br /&gt;
Org Name: (Short) E Inc. (Long) Long Name E Inc.&lt;br /&gt;
Org Name: (Short) F Inc. (Long) Long Name F Inc.&lt;br /&gt;
6 rows selected.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table company;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Create a package containing stored procedure DELETE_ORDERS and stored function GET_employee_NAME.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table employee&lt;br /&gt;
  2          (&lt;br /&gt;
  3           empl_no                integer         primary key&lt;br /&gt;
  4          ,lastname               varchar2(20)    not null&lt;br /&gt;
  5          ,firstname              varchar2(15)    not null&lt;br /&gt;
  6          ,midinit                varchar2(1)&lt;br /&gt;
  7          ,street                 varchar2(30)&lt;br /&gt;
  8          ,city                   varchar2(20)&lt;br /&gt;
  9          ,state                  varchar2(2)&lt;br /&gt;
 10          ,zip                    varchar2(5)&lt;br /&gt;
 11          ,zip_4                  varchar2(4)&lt;br /&gt;
 12          ,area_code              varchar2(3)&lt;br /&gt;
 13          ,phone                  varchar2(8)&lt;br /&gt;
 14          ,company_name           varchar2(50));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(1,&amp;quot;Jones&amp;quot;,&amp;quot;Joe&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;10 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;11111&amp;quot;,&amp;quot;1111&amp;quot;,&amp;quot;111&amp;quot;, &amp;quot;111-1111&amp;quot;,&amp;quot;A Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(2,&amp;quot;Smith&amp;quot;,&amp;quot;Sue&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;20 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;22222&amp;quot;,&amp;quot;2222&amp;quot;,&amp;quot;222&amp;quot;, &amp;quot;222-111&amp;quot;,&amp;quot;B Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(3,&amp;quot;Anderson&amp;quot;,&amp;quot;Peggy&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;500 St&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;33333&amp;quot;,&amp;quot;3333&amp;quot;,&amp;quot;333&amp;quot;, &amp;quot;333-3333&amp;quot;,&amp;quot;C Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(4,&amp;quot;Andy&amp;quot;,&amp;quot;Jill&amp;quot;, null,&amp;quot;930 St&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;44444&amp;quot;,&amp;quot;4444&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;634-7733&amp;quot;,&amp;quot;D Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(5,&amp;quot;OK&amp;quot;,&amp;quot;Carl&amp;quot;,&amp;quot;L&amp;quot;,&amp;quot;19 Drive&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;55555&amp;quot;,&amp;quot;3234&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;243-4243&amp;quot;,&amp;quot;E Company&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(6,&amp;quot;Peter&amp;quot;,&amp;quot;Jee&amp;quot;,&amp;quot;Q&amp;quot;,&amp;quot;38 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;66666&amp;quot;,&amp;quot;4598&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;454-5443&amp;quot;,&amp;quot;F Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(7,&amp;quot;Baker&amp;quot;,&amp;quot;Paul&amp;quot;,&amp;quot;V&amp;quot;,&amp;quot;738 St.&amp;quot;,&amp;quot;Queens&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;77777&amp;quot;,&amp;quot;3842&amp;quot;,&amp;quot;718&amp;quot;, &amp;quot;664-4333&amp;quot;,&amp;quot;G Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(8,&amp;quot;Young&amp;quot;,&amp;quot;Steve&amp;quot;,&amp;quot;J&amp;quot;,&amp;quot;388 Ave&amp;quot;,&amp;quot;New York&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;88888&amp;quot;,&amp;quot;3468&amp;quot;,&amp;quot;212&amp;quot;, &amp;quot;456-4566&amp;quot;,&amp;quot;H Associates Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(9,&amp;quot;Mona&amp;quot;,&amp;quot;Joe&amp;quot;,&amp;quot;T&amp;quot;,&amp;quot;9300 Ave&amp;quot;,&amp;quot;Kansas City&amp;quot;,&amp;quot;MO&amp;quot;,&amp;quot;99999&amp;quot;,&amp;quot;3658&amp;quot;,&amp;quot;415&amp;quot;, &amp;quot;456-4563&amp;quot;,&amp;quot;J Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(10,&amp;quot;Hackett&amp;quot;,&amp;quot;Karen&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;Kings Rd. Apt 833&amp;quot;,&amp;quot;Bellmore&amp;quot;,&amp;quot;NY&amp;quot;,&amp;quot;61202&amp;quot;,&amp;quot;3898&amp;quot;,&amp;quot;516&amp;quot;, &amp;quot;767-5677&amp;quot;,&amp;quot;AA Inc&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into employee(empl_no,lastname,firstname,midinit,street,city,state,zip,zip_4,area_code,phone,company_name)&lt;br /&gt;
  2  values(11,&amp;quot;Bob&amp;quot;,&amp;quot;Jack&amp;quot;,&amp;quot;S&amp;quot;,&amp;quot;12 Giant Rd.&amp;quot;,&amp;quot;Newark&amp;quot;,&amp;quot;NJ&amp;quot;,&amp;quot;27377&amp;quot;,&amp;quot;3298&amp;quot;,&amp;quot;908&amp;quot;, &amp;quot;123-7367&amp;quot;,&amp;quot;Z Associates&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table ord&lt;br /&gt;
  2          (&lt;br /&gt;
  3           order_no               integer         primary key&lt;br /&gt;
  4          ,empl_no                integer&lt;br /&gt;
  5          ,order_date             date not null&lt;br /&gt;
  6          ,total_order_price      number(7,2)&lt;br /&gt;
  7          ,deliver_date           date&lt;br /&gt;
  8          ,deliver_time           varchar2(7)&lt;br /&gt;
  9          ,payment_method         varchar2(2)&lt;br /&gt;
 10          ,emp_no                 number(3,0)&lt;br /&gt;
 11          ,deliver_name           varchar2(35)&lt;br /&gt;
 12          ,gift_message           varchar2(100)&lt;br /&gt;
 13           );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no,empl_no,order_date,total_order_price,deliver_date,deliver_time,payment_method,emp_no,deliver_name,gift_message)&lt;br /&gt;
  2  values(1,1,add_months(sysdate, -1), 235.00, &amp;quot;14-Feb-1999&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;CA&amp;quot;,1, null, &amp;quot;Gift for wife&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time ,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(2,1,add_months(sysdate, -2), 50.98, &amp;quot;14-feb-1999&amp;quot;, &amp;quot;1 pm&amp;quot;, &amp;quot;CA&amp;quot;,7, &amp;quot;Rose&amp;quot;, &amp;quot;Happy Valentines Day to Mother&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(3, 2,add_months(sysdate, -3), 35.99, &amp;quot;14-feb-1999&amp;quot;, &amp;quot;1 pm&amp;quot;, &amp;quot;VS&amp;quot;,2, &amp;quot;Ruby&amp;quot;, &amp;quot;Happy Valentines Day to Mother&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(4, 2,add_months(sysdate, -4), 19.95, &amp;quot;14-feb-1999&amp;quot;, &amp;quot;5 pm&amp;quot;, &amp;quot;CA&amp;quot;,2, &amp;quot;Coy&amp;quot;, &amp;quot;Happy Valentines Day to You&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(7, 9,add_months(sysdate, -7), 35.95, &amp;quot;21-jun-1999&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;VS&amp;quot;, 2, &amp;quot;Fill&amp;quot;, &amp;quot;Happy Birthday from Joe&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values (8, 12, add_months(sysdate, -8), 35.95, &amp;quot;1-jan-2000&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;DI&amp;quot;,3, &amp;quot;Laura&amp;quot;, &amp;quot;Happy New Year&amp;quot;&amp;quot;s from Lawrence&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values (9, 12, add_months(sysdate, -9), 75.95, &amp;quot;2-jan-2000&amp;quot;, &amp;quot;12 noon&amp;quot;, &amp;quot;CA&amp;quot;,7, &amp;quot;Sara&amp;quot;, &amp;quot;Happy Birthday from Lawrence&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(10, 4, add_months(sysdate, -10), 19.95, sysdate, &amp;quot;2:30 pm&amp;quot;, &amp;quot;VG&amp;quot;,2, &amp;quot;OK&amp;quot;, &amp;quot;Happy Valentines Day to You&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message )&lt;br /&gt;
  2  values(11, 2, add_months(sysdate, -11), 30.00, sysdate+2, &amp;quot;1:30 pm&amp;quot;, &amp;quot;VG&amp;quot;,2, &amp;quot;Hi&amp;quot;, &amp;quot;Happy Birthday Day to You&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message)&lt;br /&gt;
  2  values(12, 7, add_months(sysdate, -12), 21.95, sysdate-2, &amp;quot;3:30 pm&amp;quot;, &amp;quot;CA&amp;quot;,2, &amp;quot;Jack&amp;quot;, &amp;quot;Happy Birthday Day to You&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into ord(order_no  ,empl_no ,order_date ,total_order_price ,deliver_date ,deliver_time,payment_method ,emp_no,deliver_name ,gift_message)&lt;br /&gt;
  2  values(13, 7, add_months(sysdate, -1), 21.95, sysdate, &amp;quot;3:30 pm&amp;quot;, &amp;quot;CA&amp;quot;,2, &amp;quot;Jay&amp;quot;, &amp;quot;Thanks for giving 100%!&amp;quot;);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table ord_history&lt;br /&gt;
  2          (&lt;br /&gt;
  3           order_no               integer         primary key&lt;br /&gt;
  4          ,empl_no                integer&lt;br /&gt;
  5          ,order_date             date not null&lt;br /&gt;
  6          ,total_order_price      number(7,2)&lt;br /&gt;
  7          ,deliver_date           date&lt;br /&gt;
  8          ,deliver_time           varchar2(7)&lt;br /&gt;
  9          ,payment_method         varchar2(2)&lt;br /&gt;
 10          ,emp_no                 number(3,0)&lt;br /&gt;
 11          ,deliver_name           varchar2(35)&lt;br /&gt;
 12          ,gift_message           varchar2(100)&lt;br /&gt;
 13           );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace package mypackage as&lt;br /&gt;
  2    procedure delete_orders (p_days  in  number);&lt;br /&gt;
  3    function get_employee_name  (p_empl_no in number) return varchar2 ;&lt;br /&gt;
  4  end ;&lt;br /&gt;
  5  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; show errors&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace package body mypackage as&lt;br /&gt;
  2  procedure delete_orders&lt;br /&gt;
  3     (p_days  in  number)&lt;br /&gt;
  4  is&lt;br /&gt;
  5  begin&lt;br /&gt;
  6       insert into ord_history&lt;br /&gt;
  7              select *&lt;br /&gt;
  8              from ord&lt;br /&gt;
  9              where order_date &amp;lt; sysdate - p_days;&lt;br /&gt;
 10       if sql%notfound then&lt;br /&gt;
 11      dbms_output.put_line(&amp;quot;No orders old than &amp;quot; || p_days || &amp;quot;days&amp;quot;);&lt;br /&gt;
 12       end if;&lt;br /&gt;
 13       delete from ord&lt;br /&gt;
 14       where order_date &amp;lt; sysdate - p_days;&lt;br /&gt;
 15       commit;&lt;br /&gt;
 16  end;&lt;br /&gt;
 17&lt;br /&gt;
 18  function get_employee_name&lt;br /&gt;
 19    (p_empl_no in number)&lt;br /&gt;
 20  return varchar2&lt;br /&gt;
 21  is&lt;br /&gt;
 22  v_name    varchar2(40);&lt;br /&gt;
 23  begin&lt;br /&gt;
 24    select lastname || &amp;quot;, &amp;quot; || firstname into v_name&lt;br /&gt;
 25      from employee&lt;br /&gt;
 26      where empl_no = p_empl_no;&lt;br /&gt;
 27      return(v_name);&lt;br /&gt;
 28  exception&lt;br /&gt;
 29    when no_data_found then&lt;br /&gt;
 30      raise_application_error(-20001, &amp;quot;employee not found.&amp;quot;);&lt;br /&gt;
 31    when others then&lt;br /&gt;
 32      raise_application_error (-20002, &amp;quot;Unexpected error.&amp;quot;);&lt;br /&gt;
 33  end;&lt;br /&gt;
 34  end;&lt;br /&gt;
 35  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; show errors&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; select mypackage.get_employee_name(1) from dual ;&lt;br /&gt;
MYPACKAGE.GET_EMPLOYEE_NAME(1)&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
Jones, Joe&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table ord;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt; drop table ord_history;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table employee;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Method overload==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table gender (&lt;br /&gt;
  2  id                             number,&lt;br /&gt;
  3  code                           varchar2(30),&lt;br /&gt;
  4  description                    varchar2(80),&lt;br /&gt;
  5  active_date                    date          default SYSDATE  not null,&lt;br /&gt;
  6  inactive_date                  date );&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; insert into gender ( id, code, description ) values ( 1, &amp;quot;F&amp;quot;, &amp;quot;Female&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into gender ( id, code, description ) values ( 2, &amp;quot;M&amp;quot;, &amp;quot;Male&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; insert into gender ( id, code, description ) values ( 3, &amp;quot;U&amp;quot;, &amp;quot;Unknown&amp;quot; );&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace PACKAGE genderS as&lt;br /&gt;
  2      PROCEDURE get_code_descr(&lt;br /&gt;
  3      ain_id                         in  gender.id%TYPE,&lt;br /&gt;
  4      aov_code                       out gender.code%TYPE,&lt;br /&gt;
  5      aov_description                out gender.description%TYPE);&lt;br /&gt;
  6&lt;br /&gt;
  7      PROCEDURE get_code_id_descr(&lt;br /&gt;
  8      aiov_code                      in out gender.code%TYPE,&lt;br /&gt;
  9      aon_id                            out gender.id%TYPE,&lt;br /&gt;
 10      aov_description                   out gender.description%TYPE,&lt;br /&gt;
 11      aid_on                         in     gender.active_date%TYPE);&lt;br /&gt;
 12&lt;br /&gt;
 13      PROCEDURE get_code_id_descr(&lt;br /&gt;
 14      aiov_code                      in out gender.code%TYPE,&lt;br /&gt;
 15      aon_id                            out gender.id%TYPE,&lt;br /&gt;
 16      aov_description                   out gender.description%TYPE);&lt;br /&gt;
 17&lt;br /&gt;
 18      FUNCTION get_id&lt;br /&gt;
 19      return                                gender.id%TYPE;&lt;br /&gt;
 20&lt;br /&gt;
 21      FUNCTION get_id(&lt;br /&gt;
 22      aiv_code                       in     gender.code%TYPE)&lt;br /&gt;
 23      return                                gender.id%TYPE;&lt;br /&gt;
 24&lt;br /&gt;
 25  end genderS;&lt;br /&gt;
 26  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace PACKAGE BODY genderS as&lt;br /&gt;
  2  FUNCTION get_id&lt;br /&gt;
  3  return                                gender.id%TYPE is&lt;br /&gt;
  4  n_id                                  gender.id%TYPE;&lt;br /&gt;
  5  begin&lt;br /&gt;
  6    select 1 into n_id from SYS.DUAL;&lt;br /&gt;
  7    return n_id;&lt;br /&gt;
  8  end get_id;&lt;br /&gt;
  9&lt;br /&gt;
 10&lt;br /&gt;
 11  FUNCTION get_id(aiv_code in gender.code%TYPE )&lt;br /&gt;
 12  return gender.id%TYPE is&lt;br /&gt;
 13&lt;br /&gt;
 14  n_id gender.id%TYPE;&lt;br /&gt;
 15&lt;br /&gt;
 16  begin&lt;br /&gt;
 17    select id into n_id from gender where code = aiv_code;&lt;br /&gt;
 18&lt;br /&gt;
 19    return n_id;&lt;br /&gt;
 20  end get_id;&lt;br /&gt;
 21&lt;br /&gt;
 22  PROCEDURE get_code_descr(&lt;br /&gt;
 23  ain_id                         in     gender.id%TYPE,&lt;br /&gt;
 24  aov_code                          out gender.code%TYPE,&lt;br /&gt;
 25  aov_description                   out gender.description%TYPE ) is&lt;br /&gt;
 26&lt;br /&gt;
 27  begin&lt;br /&gt;
 28    select code,description into aov_code,aov_description&lt;br /&gt;
 29    from   gender&lt;br /&gt;
 30    where  id = ain_id;&lt;br /&gt;
 31  end get_code_descr;&lt;br /&gt;
 32&lt;br /&gt;
 33&lt;br /&gt;
 34  PROCEDURE get_code_id_descr(&lt;br /&gt;
 35  aiov_code                      in out gender.code%TYPE,&lt;br /&gt;
 36  aon_id                            out gender.id%TYPE,&lt;br /&gt;
 37  aov_description                   out gender.description%TYPE,&lt;br /&gt;
 38  aid_on                         in     gender.active_date%TYPE ) is&lt;br /&gt;
 39&lt;br /&gt;
 40  v_code                                gender.code%TYPE;&lt;br /&gt;
 41&lt;br /&gt;
 42  begin&lt;br /&gt;
 43    select id,description into aon_id,aov_description&lt;br /&gt;
 44    from   gender&lt;br /&gt;
 45    where  code = aiov_code&lt;br /&gt;
 46    and    aid_on between active_date and nvl(inactive_date, DATES.d_MAX);&lt;br /&gt;
 47  exception&lt;br /&gt;
 48    when NO_DATA_FOUND then&lt;br /&gt;
 49      select id, code,description&lt;br /&gt;
 50      into   aon_id,v_code,aov_description&lt;br /&gt;
 51      from   gender&lt;br /&gt;
 52      where  code like aiov_code||&amp;quot;%&amp;quot;&lt;br /&gt;
 53      and    aid_on between active_date and nvl(inactive_date, DATES.d_MAX);&lt;br /&gt;
 54&lt;br /&gt;
 55      aiov_code := v_code;&lt;br /&gt;
 56  end get_code_id_descr;&lt;br /&gt;
 57&lt;br /&gt;
 58&lt;br /&gt;
 59  PROCEDURE get_code_id_descr(&lt;br /&gt;
 60  aiov_code                      in out gender.code%TYPE,&lt;br /&gt;
 61  aon_id                            out gender.id%TYPE,&lt;br /&gt;
 62  aov_description                   out gender.description%TYPE ) is&lt;br /&gt;
 63&lt;br /&gt;
 64  begin&lt;br /&gt;
 65   get_code_id_descr(&lt;br /&gt;
 66    aiov_code,&lt;br /&gt;
 67    aon_id,&lt;br /&gt;
 68    aov_description,&lt;br /&gt;
 69    SYSDATE );&lt;br /&gt;
 70  end get_code_id_descr;&lt;br /&gt;
 71  end genderS;&lt;br /&gt;
 72  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; show errors&lt;br /&gt;
No errors.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table gender;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package declaration and body==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; set serveroutput on&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE calc_total (zone_in IN VARCHAR2);&lt;br /&gt;
  4&lt;br /&gt;
  5     PROCEDURE calc_total (reg_in IN VARCHAR2);&lt;br /&gt;
  6&lt;br /&gt;
  7  END myPackage;&lt;br /&gt;
  8  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE calc_total (zone_in IN VARCHAR2)&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN dbms_output.put_line (&amp;quot;zone&amp;quot;); END;&lt;br /&gt;
  6&lt;br /&gt;
  7     PROCEDURE calc_total (reg_in IN VARCHAR2)&lt;br /&gt;
  8     IS&lt;br /&gt;
  9     BEGIN dbms_output.put_line (&amp;quot;region&amp;quot;); END;&lt;br /&gt;
 10&lt;br /&gt;
 11  END myPackage;&lt;br /&gt;
 12  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package Function with &amp;quot;PRAGMA AUTONOMOUS_TRANSACTION&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE stuff_to_fix&lt;br /&gt;
  2  (stuff VARCHAR2(1000),&lt;br /&gt;
  3   fixed VARCHAR2(1));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE fixer AS&lt;br /&gt;
  2&lt;br /&gt;
  3    PROCEDURE fix_stuff;&lt;br /&gt;
  4    PROCEDURE fix_this ( p_thing_to_fix VARCHAR2 );&lt;br /&gt;
  5&lt;br /&gt;
  6  END fixer;&lt;br /&gt;
  7  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY fixer AS&lt;br /&gt;
  2&lt;br /&gt;
  3    PROCEDURE fix_this ( p_thing_to_fix VARCHAR2 ) IS&lt;br /&gt;
  4      PRAGMA AUTONOMOUS_TRANSACTION;&lt;br /&gt;
  5    BEGIN&lt;br /&gt;
  6      INSERT INTO stuff_to_fix(stuff,fixed)VALUES(p_thing_to_fix,&amp;quot;N&amp;quot;);&lt;br /&gt;
  7      COMMIT;&lt;br /&gt;
  8    END fix_this;&lt;br /&gt;
  9&lt;br /&gt;
 10    PROCEDURE fix_stuff IS&lt;br /&gt;
 11      CURSOR curs_get_stuff_to_fix IS&lt;br /&gt;
 12      SELECT stuff,ROWID  FROM stuff_to_fix WHERE fixed = &amp;quot;N&amp;quot;;&lt;br /&gt;
 13&lt;br /&gt;
 14    BEGIN&lt;br /&gt;
 15&lt;br /&gt;
 16      FOR v_stuff_rec IN curs_get_stuff_to_fix LOOP&lt;br /&gt;
 17&lt;br /&gt;
 18        EXECUTE IMMEDIATE v_stuff_rec.stuff;&lt;br /&gt;
 19&lt;br /&gt;
 20        UPDATE stuff_to_fix SET fixed = &amp;quot;Y&amp;quot; WHERE ROWID = v_stuff_rec.rowid;&lt;br /&gt;
 21&lt;br /&gt;
 22      END LOOP;&lt;br /&gt;
 23&lt;br /&gt;
 24      COMMIT;&lt;br /&gt;
 25&lt;br /&gt;
 26    END fix_stuff;&lt;br /&gt;
 27&lt;br /&gt;
 28  END fixer;&lt;br /&gt;
 29  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; DROP TABLE stuff_to_fix;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package initialization.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE Random AS&lt;br /&gt;
  2&lt;br /&gt;
  3    PROCEDURE ChangeSeed(p_NewSeed IN NUMBER);&lt;br /&gt;
  4&lt;br /&gt;
  5    FUNCTION Rand RETURN NUMBER;&lt;br /&gt;
  6&lt;br /&gt;
  7    PROCEDURE GetRand(p_RandomNumber OUT NUMBER);&lt;br /&gt;
  8&lt;br /&gt;
  9    FUNCTION RandMax(p_MaxVal IN NUMBER) RETURN NUMBER;&lt;br /&gt;
 10&lt;br /&gt;
 11    PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,p_MaxVal IN NUMBER);&lt;br /&gt;
 12  END Random;&lt;br /&gt;
 13  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY Random AS&lt;br /&gt;
  2&lt;br /&gt;
  3    v_Multiplier  CONSTANT NUMBER := 2;&lt;br /&gt;
  4    v_Increment   CONSTANT NUMBER := 1;&lt;br /&gt;
  5&lt;br /&gt;
  6    v_Seed        number := 1;&lt;br /&gt;
  7&lt;br /&gt;
  8    PROCEDURE ChangeSeed(p_NewSeed IN NUMBER) IS&lt;br /&gt;
  9    BEGIN&lt;br /&gt;
 10      v_Seed := p_NewSeed;&lt;br /&gt;
 11    END ChangeSeed;&lt;br /&gt;
 12&lt;br /&gt;
 13    FUNCTION Rand RETURN NUMBER IS&lt;br /&gt;
 14    BEGIN&lt;br /&gt;
 15      v_Seed := MOD(v_Multiplier * v_Seed + v_Increment,(2 ** 32));&lt;br /&gt;
 16      RETURN BITAND(v_Seed/(2 ** 16), 32767);&lt;br /&gt;
 17    END Rand;&lt;br /&gt;
 18&lt;br /&gt;
 19    PROCEDURE GetRand(p_RandomNumber OUT NUMBER) IS&lt;br /&gt;
 20    BEGIN&lt;br /&gt;
 21      p_RandomNumber := Rand;&lt;br /&gt;
 22    END GetRand;&lt;br /&gt;
 23&lt;br /&gt;
 24    FUNCTION RandMax(p_MaxVal IN NUMBER) RETURN NUMBER IS&lt;br /&gt;
 25    BEGIN&lt;br /&gt;
 26      RETURN MOD(Rand, p_MaxVal) + 1;&lt;br /&gt;
 27    END RandMax;&lt;br /&gt;
 28&lt;br /&gt;
 29    PROCEDURE GetRandMax(p_RandomNumber OUT NUMBER,p_MaxVal IN NUMBER) IS&lt;br /&gt;
 30    BEGIN&lt;br /&gt;
 31      -- Simply call RandMax and return the value.&lt;br /&gt;
 32      p_RandomNumber := RandMax(p_MaxVal);&lt;br /&gt;
 33    END GetRandMax;&lt;br /&gt;
 34&lt;br /&gt;
 35  BEGIN&lt;br /&gt;
 36    ChangeSeed(TO_NUMBER(TO_CHAR(SYSDATE, &amp;quot;SSSSS&amp;quot;)));&lt;br /&gt;
 37  END Random;&lt;br /&gt;
 38  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package method overloading==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE outputPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE printLine (val IN VARCHAR2);&lt;br /&gt;
  4&lt;br /&gt;
  5     PROCEDURE printLine (val IN DATE);&lt;br /&gt;
  6&lt;br /&gt;
  7     PROCEDURE printLine (val IN NUMBER);&lt;br /&gt;
  8&lt;br /&gt;
  9     PROCEDURE printLine (val IN BOOLEAN);&lt;br /&gt;
 10  END outputPackage;&lt;br /&gt;
 11  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY outputPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE printLine (val IN DATE) IS&lt;br /&gt;
  4     BEGIN&lt;br /&gt;
  5        printLine (TO_CHAR (val, &amp;quot;MM/DD/YYYY HH24:MI:SS&amp;quot;));&lt;br /&gt;
  6     END;&lt;br /&gt;
  7&lt;br /&gt;
  8     PROCEDURE printLine (val IN NUMBER) IS&lt;br /&gt;
  9     BEGIN&lt;br /&gt;
 10        printLine (TO_CHAR (val));&lt;br /&gt;
 11     END;&lt;br /&gt;
 12&lt;br /&gt;
 13     PROCEDURE printLine (val IN BOOLEAN) IS&lt;br /&gt;
 14     BEGIN&lt;br /&gt;
 15        IF val&lt;br /&gt;
 16        THEN&lt;br /&gt;
 17           printLine (&amp;quot;TRUE&amp;quot;);&lt;br /&gt;
 18        ELSIF NOT val&lt;br /&gt;
 19        THEN&lt;br /&gt;
 20           printLine (&amp;quot;FALSE&amp;quot;);&lt;br /&gt;
 21        ELSE&lt;br /&gt;
 22           printLine (&amp;quot;&amp;quot;);&lt;br /&gt;
 23        END IF;&lt;br /&gt;
 24     END;&lt;br /&gt;
 25&lt;br /&gt;
 26     PROCEDURE printLine (val IN VARCHAR2)&lt;br /&gt;
 27     IS&lt;br /&gt;
 28     BEGIN&lt;br /&gt;
 29        IF LENGTH (val) &amp;gt; 80&lt;br /&gt;
 30        THEN&lt;br /&gt;
 31           DBMS_OUTPUT.put_line (SUBSTR (val, 1, 80));&lt;br /&gt;
 32           printLine (SUBSTR (val, 81));&lt;br /&gt;
 33        ELSE&lt;br /&gt;
 34           DBMS_OUTPUT.put_line (val);&lt;br /&gt;
 35        END IF;&lt;br /&gt;
 36     EXCEPTION&lt;br /&gt;
 37        WHEN OTHERS&lt;br /&gt;
 38        THEN&lt;br /&gt;
 39           DBMS_OUTPUT.enable (1000000);&lt;br /&gt;
 40           printLine (val);&lt;br /&gt;
 41     END;&lt;br /&gt;
 42  END outputPackage;&lt;br /&gt;
 43  /&lt;br /&gt;
Package body created.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package with only one function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE valerr&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     FUNCTION get RETURN VARCHAR2;&lt;br /&gt;
  4  END valerr;&lt;br /&gt;
  5  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY valerr&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     v VARCHAR2(1) := &amp;quot;ABC&amp;quot;;&lt;br /&gt;
  4&lt;br /&gt;
  5     FUNCTION get RETURN VARCHAR2&lt;br /&gt;
  6     IS&lt;br /&gt;
  7     BEGIN&lt;br /&gt;
  8        RETURN v;&lt;br /&gt;
  9     END;&lt;br /&gt;
 10  BEGIN&lt;br /&gt;
 11     DBMS_OUTPUT.PUT_LINE (&amp;quot;Before I show you v...&amp;quot;);&lt;br /&gt;
 12&lt;br /&gt;
 13  EXCEPTION&lt;br /&gt;
 14    WHEN OTHERS&lt;br /&gt;
 15    THEN&lt;br /&gt;
 16      DBMS_OUTPUT.PUT_LINE (&amp;quot;Trapped the error!&amp;quot;);&lt;br /&gt;
 17&lt;br /&gt;
 18  END valerr;&lt;br /&gt;
 19  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Package with two procedures==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc1;&lt;br /&gt;
  4     PROCEDURE proc2;&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc1&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        NULL;&lt;br /&gt;
  7     END;&lt;br /&gt;
  8&lt;br /&gt;
  9     PROCEDURE proc2&lt;br /&gt;
 10     IS&lt;br /&gt;
 11     BEGIN&lt;br /&gt;
 12        NULL;&lt;br /&gt;
 13     END;&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
Package body created.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Reference method from another package==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myPackage1&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc;&lt;br /&gt;
  4  END;&lt;br /&gt;
  5  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myPackage1&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        NULL;&lt;br /&gt;
  7     END;&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE not_myPackage2&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc;&lt;br /&gt;
  4  END;&lt;br /&gt;
  5  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY not_myPackage2&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        NULL;&lt;br /&gt;
  7     END;&lt;br /&gt;
  8  END;&lt;br /&gt;
  9  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc1;&lt;br /&gt;
  4     PROCEDURE proc2;&lt;br /&gt;
  5  END;&lt;br /&gt;
  6  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myPackage&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE proc1&lt;br /&gt;
  4     IS&lt;br /&gt;
  5     BEGIN&lt;br /&gt;
  6        myPackage1.proc;&lt;br /&gt;
  7     END;&lt;br /&gt;
  8&lt;br /&gt;
  9     PROCEDURE proc2&lt;br /&gt;
 10     IS&lt;br /&gt;
 11     BEGIN&lt;br /&gt;
 12        not_myPackage2.proc;&lt;br /&gt;
 13     END;&lt;br /&gt;
 14  END;&lt;br /&gt;
 15  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use of &amp;quot;get&amp;quot; and &amp;quot;set&amp;quot; prefixes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE myDate&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     PROCEDURE set_mydate (date_in IN DATE);&lt;br /&gt;
  4     FUNCTION get_mydate RETURN DATE;&lt;br /&gt;
  5  END myDate;&lt;br /&gt;
  6  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE BODY myDate&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     g_mydate DATE;&lt;br /&gt;
  4&lt;br /&gt;
  5     PROCEDURE set_mydate (date_in IN DATE)&lt;br /&gt;
  6     IS&lt;br /&gt;
  7     BEGIN&lt;br /&gt;
  8        g_mydate := date_in;&lt;br /&gt;
  9     END;&lt;br /&gt;
 10&lt;br /&gt;
 11     FUNCTION get_mydate RETURN DATE&lt;br /&gt;
 12     IS&lt;br /&gt;
 13     BEGIN&lt;br /&gt;
 14        RETURN g_mydate;&lt;br /&gt;
 15     END;&lt;br /&gt;
 16  END myDate;&lt;br /&gt;
 17  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use package member variable to pass value==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create table t as select * from all_objects;&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace package myPackage&lt;br /&gt;
  2  as&lt;br /&gt;
  3      type varchar2_array is table of varchar2(30) index by binary_integer;&lt;br /&gt;
  4      type rc is ref cursor;&lt;br /&gt;
  5      procedure index_by( p_owner in varchar2, p_object_name out varchar2_array,p_object_type out varchar2_array,p_timestamp out varchar2_array );&lt;br /&gt;
  6      procedure ref_cursor( p_owner in varchar2, p_cursor in out rc );&lt;br /&gt;
  7  end;&lt;br /&gt;
  8  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; create or replace package body myPackage&lt;br /&gt;
  2  as&lt;br /&gt;
  3  procedure index_by( p_owner in varchar2,p_object_name out varchar2_array,p_object_type out varchar2_array,p_timestamp out varchar2_array )&lt;br /&gt;
  4  is&lt;br /&gt;
  5  begin&lt;br /&gt;
  6      select object_name, object_type, timestamp&lt;br /&gt;
  7        bulk collect into p_object_name, p_object_type, p_timestamp&lt;br /&gt;
  8        from t&lt;br /&gt;
  9       where owner = p_owner;&lt;br /&gt;
 10  end;&lt;br /&gt;
 11&lt;br /&gt;
 12  procedure ref_cursor( p_owner in varchar2,p_cursor in out rc )&lt;br /&gt;
 13  is&lt;br /&gt;
 14  begin&lt;br /&gt;
 15      open p_cursor for select object_name, object_type, timestamp from t where owner = p_owner;&lt;br /&gt;
 16      end;&lt;br /&gt;
 17  end;&lt;br /&gt;
 18  /&lt;br /&gt;
Package body created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table t;&lt;br /&gt;
Table dropped.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Use package method in a procedure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL,&lt;br /&gt;
  2                    ENAME VARCHAR2(10),&lt;br /&gt;
  3                    JOB VARCHAR2(9),&lt;br /&gt;
  4                    MGR NUMBER(4),&lt;br /&gt;
  5                    HIREDATE DATE,&lt;br /&gt;
  6                    SAL NUMBER(7, 2),&lt;br /&gt;
  7                    COMM NUMBER(7, 2),&lt;br /&gt;
  8                    DEPTNO NUMBER(2));&lt;br /&gt;
Table created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7369, &amp;quot;SMITH&amp;quot;, &amp;quot;CLERK&amp;quot;,    7902, TO_DATE(&amp;quot;17-DEC-1980&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 800, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7499, &amp;quot;ALLEN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;20-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1600, 300, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7521, &amp;quot;WARD&amp;quot;,  &amp;quot;SALESMAN&amp;quot;, 7698, TO_DATE(&amp;quot;22-FEB-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 500, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7566, &amp;quot;JONES&amp;quot;, &amp;quot;MANAGER&amp;quot;,  7839, TO_DATE(&amp;quot;2-APR-1981&amp;quot;,  &amp;quot;DD-MON-YYYY&amp;quot;), 2975, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7654, &amp;quot;MARTIN&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;28-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1250, 1400, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7698, &amp;quot;BLAKE&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;1-MAY-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2850, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7782, &amp;quot;CLARK&amp;quot;, &amp;quot;MANAGER&amp;quot;, 7839,TO_DATE(&amp;quot;9-JUN-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 2450, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7788, &amp;quot;SCOTT&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;09-DEC-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7839, &amp;quot;KING&amp;quot;, &amp;quot;PRESIDENT&amp;quot;, NULL,TO_DATE(&amp;quot;17-NOV-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 5000, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7844, &amp;quot;TURNER&amp;quot;, &amp;quot;SALESMAN&amp;quot;, 7698,TO_DATE(&amp;quot;8-SEP-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1500, 0, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7876, &amp;quot;ADAMS&amp;quot;, &amp;quot;CLERK&amp;quot;, 7788,TO_DATE(&amp;quot;12-JAN-1983&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1100, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7900, &amp;quot;JAMES&amp;quot;, &amp;quot;CLERK&amp;quot;, 7698,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 950, NULL, 30);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7902, &amp;quot;FORD&amp;quot;, &amp;quot;ANALYST&amp;quot;, 7566,TO_DATE(&amp;quot;3-DEC-1981&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 3000, NULL, 20);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt; INSERT INTO EMP VALUES (7934, &amp;quot;MILLER&amp;quot;, &amp;quot;CLERK&amp;quot;, 7782,TO_DATE(&amp;quot;23-JAN-1982&amp;quot;, &amp;quot;DD-MON-YYYY&amp;quot;), 1300, NULL, 10);&lt;br /&gt;
1 row created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PACKAGE onecur&lt;br /&gt;
  2  IS&lt;br /&gt;
  3     CURSOR onerow (id_in IN emp.empno%TYPE)&lt;br /&gt;
  4     IS&lt;br /&gt;
  5        SELECT * FROM emp WHERE empno = id_in;&lt;br /&gt;
  6  END onecur;&lt;br /&gt;
  7  /&lt;br /&gt;
Package created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE procA&lt;br /&gt;
  2  IS&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     OPEN onecur.onerow (1005);&lt;br /&gt;
  5  END procA;&lt;br /&gt;
  6  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE OR REPLACE PROCEDURE procB&lt;br /&gt;
  2  IS&lt;br /&gt;
  3  BEGIN&lt;br /&gt;
  4     OPEN onecur.onerow (2356);&lt;br /&gt;
  5     procA;&lt;br /&gt;
  6  END procB;&lt;br /&gt;
  7  /&lt;br /&gt;
Procedure created.&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; BEGIN&lt;br /&gt;
  2     procB;&lt;br /&gt;
  3  END;&lt;br /&gt;
  4  /&lt;br /&gt;
BEGIN&lt;br /&gt;
*&lt;br /&gt;
ERROR at line 1:&lt;br /&gt;
ORA-04063: package body &amp;quot;sqle.ONECUR&amp;quot; has errors&lt;br /&gt;
ORA-06508: PL/SQL: could not find program unit being called: &amp;quot;sqle.ONECUR&amp;quot;&lt;br /&gt;
ORA-06512: at &amp;quot;sqle.PROCB&amp;quot;, line 4&lt;br /&gt;
ORA-06512: at line 2&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt;&lt;br /&gt;
SQL&amp;gt; drop table emp;&lt;br /&gt;
Table dropped.&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>