home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / programming / oracle7 7.2 / DB / UTIL72 / PIPIDL.SQL < prev    next >
Encoding:
Text File  |  1995-05-18  |  20.7 KB  |  618 lines

  1. rem
  2. rem $Header: pipidl.sql 7020100.1 94/09/28 15:14:22 cli Generic<base> $
  3. rem
  4. Rem  Copyright (c) 1991 by Oracle Corporation
  5. Rem    NAME
  6. Rem      pidl.sql - package Portable IDL
  7. Rem    DESCRIPTION
  8. Rem      equivalent to v7$pls:[icd]PIPISPC.PLS and PIPIBDY.PLS
  9. Rem    MODIFIED   (MM/DD/YY)
  10. Rem     usundara   04/08/94 -  merge changes from branch 1.9.710.1
  11. Rem                            fix traversals - bug 161306,147036 (for pclare)
  12. Rem     pshaw      10/21/92 -  modify script for bug 131187 
  13. Rem     gclossma   05/08/92 -  cleaning 
  14. Rem     ahong      02/18/92 -  use package diutil 
  15. Rem     gclossma   01/22/92 -  functions may not have OUT parms 
  16. Rem     gclossma   01/14/92 -  pkg PIDL mustn't call pkg DIANA: disable subptxt
  17. Rem     ahong      01/07/92 -  icd for DESCRIBE
  18. Rem     pdufour    01/03/92 -  remove connect internal and add drop package
  19. Rem     gclossma   11/27/91 -  Creation
  20. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  21. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  22. -- NOTE: you must be connected "internal" (as user SYS) to run this script.
  23. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  24. -- NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE
  25.  
  26. create or replace package sys.PIDL is
  27.  
  28.  
  29.   ----------------------------------------------------------------------------
  30.   -- Persistent IDL datatypes
  31.   ----------------------------------------------------------------------------
  32.  
  33.   subtype byte4     is binary_integer; -- guaranteed to be 4 bytes
  34.   subtype ptnod     is binary_integer; -- generic IDL node type
  35.   subtype ub4       is binary_integer; -- Oracle C type, unsigned byte 4
  36.   subtype ub2       is binary_integer; -- Oracle C type, unsigned byte 2
  37.   subtype ub1       is binary_integer; -- Oracle C type, unsigned byte 1
  38.   subtype sb4       is binary_integer; -- Oracle C type, signed byte 4 
  39.   subtype sb2       is binary_integer; -- Oracle C type, signed byte 2
  40.   subtype b4        is binary_integer; -- Oracle C type, byte 4
  41.  
  42.   ----------------------------------------------------------------------------
  43.   -- Sequence datatypes.
  44.   ----------------------------------------------------------------------------
  45.   subtype ptseqtx   is ptnod;       -- seq of text/char
  46.   subtype ptseqnd   is ptnod;       -- seq of IDL node
  47.   subtype ptsequ4   is ptnod;       -- seq of ub4
  48.   subtype ptsequ2   is ptnod;       -- seq of ub2
  49.   subtype ptsequ1   is ptnod;       -- seq of ub1
  50.   subtype ptseqs4   is ptnod;       -- seq of sb4
  51.   subtype ptseqs2   is ptnod;       -- seq of sb2
  52.   subtype ptseqb4   is ptnod;       -- seq of b4
  53.  
  54.   ----------------------------------------------------------------------------
  55.   -- Non-persistent IDL datatypes
  56.   ----------------------------------------------------------------------------
  57.   subtype private_ptr_t is raw; /*(12)*/
  58.   type    ptr_t     is record(private_ptr private_ptr_t(12));
  59.   subtype ptseqpt   is ptnod;  -- seq of ptr_t
  60.  
  61.   ----------------------------------------------------------------------------
  62.   -- Types used for the implementation of persistent-idl.
  63.   ----------------------------------------------------------------------------
  64.   subtype ptnty        is ub2;    -- node-type enumerators
  65.   subtype ptaty        is ub2;    -- attr-type enumerators
  66.   subtype ptbty        is ub2;    -- base-type enumerators for attributes
  67.   subtype ptrty     is ub2;     -- rererence-type enumerators
  68.  
  69.   ----------------------------------------------------------------------------
  70.   -- Enumerators for the kinds of reference (ptrty).
  71.   ----------------------------------------------------------------------------
  72.   PTA_REF    constant ptrty := 0; -- REF
  73.   PTA_PART     constant ptrty := 1; -- PART
  74.   PTA_PREF    constant ptrty := 2; -- PART REF
  75.  
  76.   ----------------------------------------------------------------------------
  77.   -- Enumerators for the idl basetypes (ptbty).
  78.   ----------------------------------------------------------------------------
  79.   PTABTERR constant ptbty :=  0; -- error
  80.   PTABT_ND constant ptbty :=  1; -- ptnod 
  81.   PTABT_TX constant ptbty :=  2; -- text* 
  82.   PTABT_U4 constant ptbty :=  3; -- ub4   
  83.   PTABT_U2 constant ptbty :=  4; -- ptbty
  84.   PTABT_U1 constant ptbty :=  5; -- ub1
  85.   PTABT_S4 constant ptbty :=  6; -- sb4   
  86.   PTABT_S2 constant ptbty :=  7; -- sb2
  87.   PTABT_B4 constant ptbty :=  8; -- byte4 
  88.   PTABT_PT constant ptbty :=  9; -- dvoid*
  89.   PTABT_RA constant ptbty := 10; -- s_opera 
  90.         -- s_opera is an internal type, for diana's S_OPERAT
  91.   PTABT_LS constant ptbty := 11; -- ptlis*
  92.   PTABT_RS constant ptbty := 12; -- ub1* raw string, w/out null ind
  93.   PTABT_CS constant ptbty := 13; -- char* w/out null ind
  94. -- (pl)sql basetypes
  95.   PTABT_NU constant ptbty := 14; -- sql number (with null ind)
  96.   PTABT_RW constant ptbty := 15; -- sql raw (with null ind)
  97.   PTABT_C2 constant ptbty := 18; -- sql varchar2 (with null ind)
  98.   PTABT_DT constant ptbty := 19; -- sql date (with null ind)
  99.   PTABT_BI constant ptbty := 20; -- (pl)sql binary_integer (w nullind)
  100.   PTABT_BO constant ptbty := 21; -- (pl)sql boolean (with null ind)
  101.  
  102. -- ptabts: pt attribute base type sequences, idl bulk types, one of:
  103.   PTABTS_0 constant ptbty := 29;
  104.   PTABTSND constant ptbty := (PTABTS_0 +  1); -- seq of ptnod 
  105.   PTABTSTX constant ptbty := (PTABTS_0 +  2); -- seq of text* 
  106.   PTABTSU4 constant ptbty := (PTABTS_0 +  3); -- seq of ub4   
  107.   PTABTSU2 constant ptbty := (PTABTS_0 +  4); -- seq of ptbty
  108.   PTABTSU1 constant ptbty := (PTABTS_0 +  5); -- seq of ub1
  109.   PTABTSS4 constant ptbty := (PTABTS_0 +  6); -- seq of sb4   
  110.   PTABTSS2 constant ptbty := (PTABTS_0 +  7); -- seq of sb2
  111.   PTABTSB4 constant ptbty := (PTABTS_0 +  8); -- seq of byte4 
  112.   PTABTSPT constant ptbty := (PTABTS_0 +  9); -- seq of dvoid*
  113.   PTABTSRA constant ptbty := (PTABTS_0 + 10); -- seq of s_opera
  114. --      PTABTSLS  (PTABTS_0 + 11);          -- seq of ptlis*: unsupported
  115.   PTABTSRS constant ptbty := (PTABTS_0 + 12); -- seq of ub1*
  116.   PTABTSCS constant ptbty := (PTABTS_0 + 13); -- seq of char*
  117. -- (pl)sql basetypes
  118.   PTABTSNU constant ptbty := (PTABTS_0 + 14); -- seq of sql number
  119.   PTABTSRW constant ptbty := (PTABTS_0 + 15); -- seq of sql raw 
  120.   PTABTSC2 constant ptbty := (PTABTS_0 + 18); -- seq of sql varchar2
  121.   PTABTSDT constant ptbty := (PTABTS_0 + 19); -- seq of sql date
  122.   PTABTSBI constant ptbty := (PTABTS_0 + 20); -- seq of (pl)sql
  123.                               --  binary_integer
  124.   PTABTSBO constant ptbty := (PTABTS_0 + 21); -- seq of (pl)sql
  125.                               -- boolean
  126.  
  127.   
  128.   ----------------------------------------------------------------------------
  129.   -- IDL traversal state. 
  130.   --
  131.   -- A traversal is like a cursor. It performs a full pre-order scan of
  132.   -- an IDL complex object. 
  133.   ----------------------------------------------------------------------------
  134.   type    ptftrvrsl is record(private_ptr raw(12));
  135.  
  136.   ----------------------------------------------------------------------------
  137.   -- Traversal primitives.
  138.   ----------------------------------------------------------------------------
  139.   function ptftin(root ptnod) return ptftrvrsl;
  140.   function ptfnxt(traversal ptftrvrsl, node ptnod) return ptnod;
  141.  
  142.   ----------------------------------------------------------------------------
  143.   -- Miscellaneous functions.
  144.   ----------------------------------------------------------------------------
  145.   function ptkin(obj ptnod) return ptnty;
  146.  
  147.   function hshbod(def_id ptnod) return ptnod;
  148.  
  149.     -- returns number of attributes for given node type
  150.   function ptattcnt(node_enum ptnty) return ub2;
  151.  
  152.     -- returns attr-type enumerator for nth attr of given node type
  153.   function ptatttyp(node_enum ptnty, nth ub2) return ptaty;
  154.  
  155.     -- returns text name of given node type
  156.   function ptattnnm(node_enum ptnty) return varchar2;
  157.  
  158.     -- returns text name of given attr type
  159.   function ptattanm(attr_enum ptaty) return varchar2;
  160.  
  161.     -- returns base-type enumerator for type of given attribute
  162.   function ptattbty(node_enum ptnty, attr_enum ptaty) return ptbty;
  163.  
  164.     -- "ref type" returns PART, PART_REF, or REF
  165.   function ptattrty(node_enum ptnty, attr_enum ptaty) return ptrty;
  166.  
  167.   ----------------------------------------------------------------------------
  168.   -- Primitive IDL access methods.  See DEFS$:PT.H.
  169.   -- 
  170.   -- There is a "get" (ptg%) and a "put" (ptp%) for each IDL base type 
  171.   --     tx: text*
  172.   --     nd: ptnod
  173.   --     u4: ub4
  174.   --     u2: ub2
  175.   --     u1: ub1
  176.   --     s4: sb4
  177.   --     s2: sb2
  178.   --     b4: byte4
  179.   --     ls: ptlis*        -- not persistent
  180.   --     pt: ptr_t        -- not persistent
  181.   --     dt: sql date
  182.   --     nu: sql number
  183.   --     ch: sql varchar2
  184.   --     vc: sql varchar
  185.   --     c2: sql varchar2
  186.   --     bi: plsql binary integer
  187.   --     bo: plsql boolean
  188.   --
  189.   -- The ptgs% calls get sequences of the above types, for example,
  190.   -- ptgsnd() fetches a handle to a sequence of nodes from an attribute
  191.   -- of type "sequence of <NODE or CLASS>".
  192.   ----------------------------------------------------------------------------
  193.   function ptg_tx(obj ptnod, aty ptaty) return varchar2;
  194.   function ptg_nd(obj ptnod, aty ptaty) return ptnod;
  195.   function ptg_u4(obj ptnod, aty ptaty) return ub4;
  196.   function ptg_u2(obj ptnod, aty ptaty) return ub2;
  197.   function ptg_u1(obj ptnod, aty ptaty) return ub1;
  198.   function ptg_s4(obj ptnod, aty ptaty) return sb4;
  199.   function ptg_s2(obj ptnod, aty ptaty) return sb2;
  200.   function ptg_b4(obj ptnod, aty ptaty) return byte4;
  201.   function ptg_pt(obj ptnod, aty ptaty) return ptr_t;
  202.  
  203.   function ptgsnd(obj ptnod, aty ptaty) return ptseqnd;
  204.   function ptslen(seq ptseqnd) return ub2; -- get length of sequence
  205.  
  206.   procedure ptp_tx(obj ptnod, val varchar2,   aty ptaty);
  207.   procedure ptp_nd(obj ptnod, val ptnod,  aty ptaty);
  208.   procedure ptp_u4(obj ptnod, val ub4,    aty ptaty);
  209.   procedure ptp_u2(obj ptnod, val ub2,    aty ptaty);
  210.   procedure ptp_u1(obj ptnod, val ub1,    aty ptaty);
  211.   procedure ptp_s4(obj ptnod, val sb4,    aty ptaty);
  212.   procedure ptp_s2(obj ptnod, val sb2,    aty ptaty);
  213.   procedure ptp_b4(obj ptnod, val byte4,  aty ptaty);
  214.   procedure ptp_pt(obj ptnod, val ptr_t,  aty ptaty);
  215.  
  216. --  procedure ptpsnd(obj ptnod, val ptseqnd, aty ptaty);
  217.  
  218.   ----------------------------------------------------------------------------
  219.   -- Sequence element-indexing functions.
  220.   ----------------------------------------------------------------------------
  221.   function ptgetx(obj ptseqtx, ndx ub2) return varchar2;
  222.   function ptgend(obj ptseqnd, ndx ub2) return ptnod;
  223.   function ptgeu4(obj ptsequ4, ndx ub2) return ub4;
  224.   function ptgeu2(obj ptsequ2, ndx ub2) return ub2;
  225.   function ptgeu1(obj ptsequ1, ndx ub2) return ub1;
  226.   function ptges4(obj ptseqs4, ndx ub2) return sb4;
  227.   function ptges2(obj ptseqs2, ndx ub2) return sb2;
  228.   function ptgeb4(obj ptseqb4, ndx ub2) return b4;
  229.   function ptgept(obj ptseqpt, ndx ub2) return ptr_t;
  230.  
  231. -- NYI
  232. --  procedure ptpetx(obj ptseqtx, ndx ub2, val varchar2);
  233. --  procedure ptpend(obj ptseqnd, ndx ub2, val ptnod);
  234. --  procedure ptpeu4(obj ptsequ4, ndx ub2, val ub4);
  235. --  procedure ptpeu2(obj ptsequ2, ndx ub2, val ub2);
  236. --  procedure ptpeu1(obj ptsequ1, ndx ub2, val ub1);
  237. --  procedure ptpes4(obj ptseqs4, ndx ub2, val sb4);
  238. --  procedure ptpes2(obj ptseqs2, ndx ub2, val sb2);
  239. --  procedure ptpeb4(obj ptseqb4, ndx ub2, val b4);
  240.  
  241. end pidl;
  242.  
  243. /
  244. create or replace package body sys.PIDL is
  245.  
  246.  
  247.   function pig_tx(obj ptnod, aty ptaty) return varchar2;
  248.     pragma interface(c,pig_tx);
  249.   function pig_nd(obj ptnod, aty ptaty) return ptnod;
  250.     pragma interface(c,pig_nd);
  251.   function pig_u4(obj ptnod, aty ptaty) return ub4;
  252.     pragma interface(c,pig_u4);
  253.   function pig_u2(obj ptnod, aty ptaty) return ub2;
  254.     pragma interface(c,pig_u2);
  255.   function pig_u1(obj ptnod, aty ptaty) return ub1;
  256.     pragma interface(c,pig_u1);
  257.   function pig_s4(obj ptnod, aty ptaty) return sb4;
  258.     pragma interface(c,pig_s4);
  259.   function pig_s2(obj ptnod, aty ptaty) return sb2;
  260.     pragma interface(c,pig_s2);
  261.   function pig_b4(obj ptnod, aty ptaty) return byte4;
  262.     pragma interface(c,pig_b4);
  263.   function pig_pt(obj ptnod, aty ptaty) return ptr_t;
  264.     pragma interface(c,pig_pt);
  265.   function pigsnd(obj ptnod, aty ptaty) return ptseqnd;
  266.     pragma interface(c,pigsnd);
  267.  
  268.   procedure pip_tx(obj ptnod, val varchar2,   aty ptaty);
  269.     pragma interface(c,pip_tx);
  270.   procedure pip_nd(obj ptnod, val ptnod, aty ptaty);
  271.     pragma interface(c,pip_nd);
  272.   procedure pip_u4(obj ptnod, val ub4,    aty ptaty);
  273.     pragma interface(c,pip_u4);
  274.   procedure pip_u2(obj ptnod, val ub2,    aty ptaty);
  275.     pragma interface(c,pip_u2);
  276.   procedure pip_u1(obj ptnod, val ub1,    aty ptaty);
  277.     pragma interface(c,pip_u1);
  278.   procedure pip_s4(obj ptnod, val sb4,    aty ptaty);
  279.     pragma interface(c,pip_s4);
  280.   procedure pip_s2(obj ptnod, val sb2,    aty ptaty);
  281.     pragma interface(c,pip_s2);
  282.   procedure pip_b4(obj ptnod, val byte4,  aty ptaty);
  283.     pragma interface(c,pip_b4);
  284.   procedure pip_pt(obj ptnod, val ptr_t,  aty ptaty);
  285.     pragma interface(c,pip_pt);
  286. --  procedure pipsnd(obj ptnod, val ptseqnd, aty ptaty);
  287. --    pragma interface(c,pipsnd);
  288.  
  289.   -- pigeXX : Get sequence element.
  290.   function pigetx(obj ptseqtx, ndx ub2) return varchar2;
  291.     pragma interface(c,pigetx);
  292.   function pigend(obj ptseqnd, ndx ub2) return ptnod;
  293.     pragma interface(c,pigend);
  294.   function pigeu4(obj ptsequ4, ndx ub2) return ub4;
  295.     pragma interface(c,pigeu4);
  296.   function pigeu2(obj ptsequ2, ndx ub2) return ub2;
  297.     pragma interface(c,pigeu2);
  298.   function pigeu1(obj ptsequ1, ndx ub2) return ub1;
  299.     pragma interface(c,pigeu1);
  300.   function piges4(obj ptseqs4, ndx ub2) return sb4;
  301.     pragma interface(c,piges4);
  302.   function piges2(obj ptseqs2, ndx ub2) return sb2;
  303.     pragma interface(c,piges2);
  304.   function pigeb4(obj ptseqb4, ndx ub2) return b4;
  305.     pragma interface(c,pigeb4);
  306.   function pigept(obj ptseqpt, ndx ub2) return ptr_t;
  307.     pragma interface(c,pigept);
  308.  
  309.   -- pipeXX : Put sequence element.
  310.   -- Following put sequence element funcs not yet implemented;
  311. --  procedure pipetx(obj ptseqtx, ndx ub2, val varchar2);
  312. --    pragma interface(c,pipetx);
  313. --  procedure pipend(obj ptseqnd, ndx ub2, val ptnod);
  314. --    pragma interface(c,pipend);
  315. --  procedure pipeu4(obj ptsequ4, ndx ub2, val ub4);
  316. --    pragma interface(c,pipeu4);
  317. --  procedure pipeu2(obj ptsequ2, ndx ub2, val ub2);
  318. --    pragma interface(c,pipeu2);
  319. --  procedure pipeu1(obj ptsequ1, ndx ub2, val ub1);
  320. --    pragma interface(c,pipeu1);
  321. --  procedure pipes4(obj ptseqs4, ndx ub2, val sb4);
  322. --    pragma interface(c,pipes4);
  323. --  procedure pipes2(obj ptseqs2, ndx ub2, val sb2);
  324. --    pragma interface(c,pipes2);
  325. --  procedure pipeb4(obj ptseqb4, ndx ub2, val b4);
  326. --    pragma interface(c,pipeb4);
  327. --  procedure pipept(obj ptseqpt, ndx ub2, val ptr_t);
  328. --    pragma interface(c,pipept);
  329.  
  330.   -- misc
  331.   function pidkin(obj ptnod) return ptnty;
  332.     pragma interface(c,pidkin);
  333.   function pidtin(root ptnod) return private_ptr_t;
  334.     pragma interface(c,pidtin);
  335.   function pidnxt(traversal private_ptr_t, node ptnod) return ptnod;
  336.     pragma interface(c,pidnxt);
  337.   function pidbod(def_id ptnod) return ptnod;
  338.     pragma interface(c,pidbod);
  339.   function pidacn(node_enum ptnty) return ub2;
  340.     pragma interface(c,pidacn);
  341.   function pidaty(node_enum ptnty, nth ub2) return ptaty;
  342.     pragma interface(c,pidaty);
  343.   function pidnnm(node_enum ptnty) return varchar2;
  344.     pragma interface(c,pidnnm);
  345.   function pidanm(attr_enum ptaty) return varchar2;
  346.     pragma interface(c,pidanm);
  347.   function pidbty(node_enum ptnty, attr_enum ptaty) return ptbty;
  348.     pragma interface(c,pidbty);
  349.   function pidrty(node_enum ptnty, attr_enum ptaty) return ptrty;
  350.     pragma interface(c,pidrty);
  351.   function pigsln(seq ptseqnd) return ub2;
  352.     pragma interface(c,pigsln);
  353.  
  354.   function ptkin(obj ptnod) return ptnty is
  355.   begin
  356.     return pidkin(obj);
  357.   end;
  358.  
  359.   function ptftin(root ptnod) return ptftrvrsl is
  360.     val ptftrvrsl;
  361.   begin
  362.     val.private_ptr := pidtin(root);
  363.     return val;
  364.   end;
  365.  
  366.   function ptfnxt(traversal ptftrvrsl, node ptnod) return ptnod is
  367.   begin
  368.     return pidnxt(traversal.private_ptr,node);
  369.   end;
  370.  
  371.   function hshbod(def_id ptnod) return ptnod is
  372.   begin
  373.     return pidbod(def_id);
  374.   end;
  375.  
  376.   function ptattcnt(node_enum ptnty) return ub2 is
  377.   begin
  378.     return pidacn(node_enum);
  379.   end;
  380.  
  381.   function ptatttyp(node_enum ptnty, nth ub2) return ptaty is
  382.   begin
  383.     return pidaty(node_enum, nth);
  384.   end;
  385.  
  386.   function ptattnnm(node_enum ptnty) return varchar2 is
  387.   begin
  388.     return pidnnm(node_enum);
  389.   end;
  390.  
  391.   function ptattanm(attr_enum ptaty) return varchar2 is
  392.   begin
  393.     return pidanm(attr_enum);
  394.   end;
  395.  
  396.   function ptattbty(node_enum ptnty, attr_enum ptaty) return ptbty is
  397.   begin
  398.     return pidbty(node_enum, attr_enum);
  399.   end;
  400.  
  401.   function ptattrty(node_enum ptnty, attr_enum ptaty) return ptrty is
  402.   begin
  403.     return pidrty(node_enum, attr_enum);
  404.   end;
  405.  
  406.   function ptg_tx(obj ptnod, aty ptaty) return varchar2 is
  407.   begin
  408.     return pig_tx(obj,aty);
  409.   end;
  410.  
  411.   function ptg_nd(obj ptnod, aty ptaty) 
  412.     return ptnod is
  413.   begin
  414.     return pig_nd(obj,aty);
  415.   end;
  416.  
  417.   function ptg_u4(obj ptnod, aty ptaty) return ub4 is
  418.   begin
  419.     return pig_u4(obj,aty);
  420.   end;
  421.  
  422.   function ptg_u2(obj ptnod, aty ptaty) return ub2 is
  423.   begin
  424.     return pig_u2(obj,aty);
  425.   end;
  426.  
  427.   function ptg_u1(obj ptnod, aty ptaty) return ub1 is
  428.   begin
  429.     return pig_u1(obj,aty);
  430.   end;
  431.  
  432.   function ptg_s4(obj ptnod, aty ptaty) return sb4 is
  433.   begin
  434.     return pig_s4(obj,aty);
  435.   end;
  436.  
  437.   function ptg_s2(obj ptnod, aty ptaty) return sb2 is
  438.   begin
  439.     return pig_s2(obj,aty);
  440.   end;
  441.  
  442.   function ptg_b4(obj ptnod, aty ptaty) 
  443.     return byte4 is
  444.   begin
  445.     return pig_b4(obj,aty);
  446.   end;
  447.  
  448.   function ptg_pt(obj ptnod, 
  449.     aty ptaty) return ptr_t is
  450.   begin
  451.     return pig_pt(obj,aty);
  452.   end;
  453.  
  454.   function ptgsnd(obj ptnod, 
  455.     aty ptaty) return ptseqnd is
  456.   begin
  457.     return pigsnd(obj,aty);
  458.   end;
  459.  
  460.   function ptslen(seq ptseqnd) return ub2 is
  461.   begin
  462.     return pigsln(seq);
  463.   end;
  464.  
  465.  
  466.   procedure ptp_tx(obj ptnod, val varchar2,   
  467.     aty ptaty) is
  468.   begin
  469.     pip_tx(obj,val,aty);
  470.   end;
  471.  
  472.   procedure ptp_nd(obj ptnod, val ptnod, 
  473.     aty ptaty) is
  474.   begin
  475.     pip_nd(obj,val,aty);
  476.   end;
  477.  
  478.   procedure ptp_u4(obj ptnod, val ub4,    
  479.     aty ptaty) is
  480.   begin
  481.     pip_u4(obj,val,aty);
  482.   end;
  483.  
  484.   procedure ptp_u2(obj ptnod, val ub2,    
  485.     aty ptaty) is
  486.   begin
  487.     pip_u2(obj,val,aty);
  488.   end;
  489.  
  490.   procedure ptp_u1(obj ptnod, val ub1,    
  491.     aty ptaty) is
  492.   begin
  493.     pip_u1(obj,val,aty);
  494.   end;
  495.  
  496.   procedure ptp_s4(obj ptnod, val sb4,    
  497.     aty ptaty) is
  498.   begin
  499.     pip_s4(obj,val,aty);
  500.   end;
  501.  
  502.   procedure ptp_s2(obj ptnod, val sb2,    
  503.     aty ptaty) is
  504.   begin
  505.     pip_s2(obj,val,aty);
  506.   end;
  507.  
  508.   procedure ptp_b4(obj ptnod, val byte4,  
  509.     aty ptaty) is
  510.   begin
  511.     pip_b4(obj,val,aty);
  512.   end;
  513.  
  514.   procedure ptp_pt(obj ptnod, val ptr_t,  
  515.     aty ptaty) is
  516.   begin
  517.     pip_pt(obj,val,aty);
  518.   end;
  519.  
  520. --  procedure ptpsnd(obj ptnod, val ptseqnd, 
  521. --    aty ptaty) is
  522. --  begin
  523. --    pipsnd(obj,val,aty);
  524. --  end;
  525.  
  526.   function ptgetx(obj ptseqtx, ndx ub2) return varchar2 is 
  527.   begin
  528.     return pigetx(obj,ndx);
  529.   end;
  530.  
  531.   function ptgend(obj ptseqnd, ndx ub2) return ptnod is 
  532.   begin
  533.     return pigend(obj,ndx);
  534.   end;
  535.  
  536.   function ptgeu4(obj ptsequ4, ndx ub2) return ub4 is 
  537.   begin
  538.     return pigeu4(obj,ndx);
  539.   end;
  540.  
  541.   function ptgeu2(obj ptsequ2, ndx ub2) return ub2 is 
  542.   begin
  543.     return pigeu2(obj,ndx);
  544.   end;
  545.  
  546.   function ptgeu1(obj ptsequ1, ndx ub2) return ub1 is 
  547.   begin
  548.     return pigeu1(obj,ndx);
  549.   end;
  550.  
  551.   function ptges4(obj ptseqs4, ndx ub2) return sb4 is 
  552.   begin
  553.     return piges4(obj,ndx);
  554.   end;
  555.  
  556.   function ptges2(obj ptseqs2, ndx ub2) return sb2 is 
  557.   begin
  558.     return piges2(obj,ndx);
  559.   end;
  560.  
  561.   function ptgeb4(obj ptseqb4, ndx ub2) return b4 is 
  562.   begin
  563.     return pigeb4(obj,ndx);
  564.   end;
  565.  
  566.   function ptgept(obj ptseqpt, ndx ub2) return ptr_t is 
  567.   begin
  568.     return pigept(obj,ndx);
  569.   end;
  570.  
  571. --  procedure ptpetx(obj ptseqtx, ndx ub2, val varchar2) is
  572. --  begin
  573. --    pipetx(obj,ndx,val);
  574. --  end;
  575.  
  576. --  procedure ptpend(obj ptseqnd, ndx ub2, val ptnod) is
  577. --  begin
  578. --    pipend(obj,ndx,val);
  579. --  end;
  580.  
  581. --  procedure ptpeu4(obj ptsequ4, ndx ub2, val ub4) is
  582. --  begin
  583. --    pipeu4(obj,ndx,val);
  584. --  end;
  585.  
  586. --  procedure ptpeu2(obj ptsequ2, ndx ub2, val ub2) is
  587. --  begin
  588. --    pipeu2(obj,ndx,val);
  589. --  end;
  590.  
  591. --  procedure ptpeu1(obj ptsequ1, ndx ub2, val ub1) is
  592. --  begin
  593. --    pipeu1(obj,ndx,val);
  594. --  end;
  595.  
  596. --  procedure ptpes4(obj ptseqs4, ndx ub2, val sb4) is
  597. --  begin
  598. --    pipes4(obj,ndx,val);
  599. --  end;
  600.  
  601. --  procedure ptpes2(obj ptseqs2, ndx ub2, val sb2) is
  602. --  begin
  603. --    pipes2(obj,ndx,val);
  604. --  end;
  605.  
  606. --  procedure ptpeb4(obj ptseqb4, ndx ub2, val b4) is
  607. --  begin
  608. --    pipeb4(obj,ndx,val);
  609. --  end;
  610.  
  611. --  procedure ptpept(obj ptseqpt, ndx ub2, val ptr_t) is
  612. --  begin
  613. --    pipept(obj,ndx,val);
  614. --  end;
  615.  
  616. end pidl;
  617. /
  618.