행위

"오라클 함수"의 두 판 사이의 차이

DB CAFE

('=ANY)
(그룹 함수)
 
(같은 사용자의 중간 판 22개는 보이지 않습니다)
1번째 줄: 1번째 줄:
== Oracle  Function ==
+
=== 함수 ===
 +
#[[LNNVL 함수|LNNVL]]
 +
#[[오라클 nvl nvl2|NVL 과 NVL2]]
 +
#[[오라클 COALESCE|COALESCE]]
 +
#[[오라클 concat 함수|CONCAT]]
 +
#[[오라클 distinct 함수|DISTINCT]]
 +
#[[오라클 listagg 함수|LISTAGG]]
 +
#[[oracle translate 함수|TRANSLATE]]
 +
#[[ORACLE XMLAGG|XMLAGG]]
 +
----
  
==== EXISTS ====
+
=== 그룹 함수 ===
  function EXISTS" return BOOLEAN;
+
# [[ROLLUP]]
pragma BUILTIN('EXISTS',10,240,240); -- This is special cased in PH2 -- Pj
+
# [[ROLLUP#GROUPING SETS|GROUPING SETS]]
 +
# [[Pivot|피봇(PIVOT)]]
 +
# [[Pivot#UNPIVOT|언피봇(UNPIVOT)]]
 +
----
  
==== GREATEST ====
+
=== [[:분석함수#윈도우/분석 함수|윈도우/분석 함수]] ===
  function GREATEST (pattern NUMBER) return NUMBER;
+
# [[:분석함수#OVER|OVER ]]
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
+
## [[:분석함수#ROWS UNBOUNDED PRECEDING |ROWS UNBOUNDED PRECEDING ]]
==== GREATEST ====
+
## [[:분석함수#ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW |ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW ]]
  function GREATEST (pattern VARCHAR2 CHARACTER SET ANY_CS)
+
## [[:분석함수#WINDOW 물리적 범위 |WINDOW 물리적 범위 ]]
return VARCHAR2 CHARACTER SET pattern%CHARSET;
+
## [[:분석함수#WINDOW 논리적 범위 |WINDOW 논리적 범위 ]]
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
+
# [[:분석함수#CUME_DIST|CUME_DIST ]]
==== GREATEST ====
+
# [[:분석함수#DENSE_RANK|DENSE_RANK ]]
  function GREATEST (pattern DATE) return DATE;
+
# [[:분석함수#FIRST_VALUE|FIRST_VALUE ]]
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
+
# [[:분석함수#LAG|LAG ]]
 
+
# [[:분석함수#LAST_VALUE|LAST_VALUE ]]
==== LEAST ====
+
# [[:분석함수#LEAD|LEAD ]]
  function LEAST (pattern NUMBER) return NUMBER;
+
# [[:분석함수#NTH_VALUE|NTH_VALUE ]]
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2 -- Pj
+
# [[:분석함수#NTILE|NTILE ]]
==== LEAST ====
+
# [[:분석함수#PERCENT_RANK|PERCENT_RANK ]]
  function LEAST (pattern VARCHAR2 CHARACTER SET ANY_CS)
+
# [[:분석함수#RANK|RANK ]]
return VARCHAR2 CHARACTER SET pattern%CHARSET;
+
# [[:분석함수#ROW_NUMBER|ROW_NUMBER ]]
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2 -- Pj
+
# [[:분석함수#ROW_NUMBER VS RANK|ROW_NUMBER vs. RANK ]]
==== LEAST ====
+
# [[:분석함수#COUNT|COUNT ]]
  function LEAST (pattern DATE) return DATE;
+
# [[:분석함수#SUM|SUM ]]
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2 -- Pj
+
# [[:분석함수#LAG 함수와 LEAD 함수|LAG 함수와 LEAD 함수 ]]
 
+
# [[:분석함수#분석함수의 활용|분석함수의 활용]]
==== DECODE ====
+
## [[:분석함수#1:M 관계의 조인에서 부모테이블이 기준집합|1:M 관계의 조인에서 부모테이블이 기준집합 ]]
  function DECODE (expr NUMBER, pat NUMBER, res NUMBER) return NUMBER;
+
## [[:분석함수#집계 연산|집계 연산 ]]
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
+
----
 
+
[[category:oracle]]
  function DECODE (expr NUMBER,
 
  pat NUMBER,
 
  res VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET res%CHARSET;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
  function DECODE (expr NUMBER, pat NUMBER, res DATE) return DATE;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
 
 
  function DECODE (expr VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET expr%CHARSET,
 
  res NUMBER) return NUMBER;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
  function DECODE (expr VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET expr%CHARSET,
 
  res VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET res%CHARSET;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
  function DECODE (expr VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET expr%CHARSET,
 
  res DATE) return DATE;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
 
 
  function DECODE (expr DATE, pat DATE, res NUMBER) return NUMBER;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
  function DECODE (expr DATE,
 
  pat DATE,
 
  res VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET res%CHARSET;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
  function DECODE (expr DATE, pat DATE, res DATE) return DATE;
 
pragma BUILTIN('DECODE',22,240,240);-- This is special cased in PH2 -- Pj
 
 
 
==== SQLCODE ====
 
  function SQLCODE return PLS_INTEGER;
 
pragma BUILTIN('SQLCODE',45, 10, 0); -- PEMS_DB, DB_SQLCODE
 
 
 
==== SQLERRM ====
 
  function SQLERRM return varchar2;
 
pragma FIPSFLAG('SQLERRM', 1452);
 
 
 
==== SQLERRM ====
 
  function SQLERRM (code PLS_INTEGER) return varchar2;
 
pragma BUILTIN('SQLERRM',46, 10, 1); -- PEMS_DB, DB_SQLERRM
 
pragma FIPSFLAG('SQLERRM', 1452);
 
 
 
==== LEVEL ====
 
  function LEVEL return NUMBER;
 
 
 
==== ROWNUM ====
 
  function ROWNUM return NUMBER;
 
 
 
==== '=' ====
 
  function '='  (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('=',2, 3, 1); -- PEMS_INTEGER, PEMDCMEQ
 
pragma FIPSFLAG('=', 1450);
 
==== '!=' ====
 
  function '!=' (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN; -- also <> and ~=
 
pragma BUILTIN('!=',5, 3, 2); -- PEMS_INTEGER, PEMDCMNE
 
pragma FIPSFLAG('!=', 1450);
 
==== '<' ====
 
  function '<'  (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('<',4, 3, 3);  -- PEMS_INTEGER, PEMDCMLT
 
pragma FIPSFLAG('<', 1450);
 
==== '<=' ====
 
  function '<=' (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('<=',6, 3, 4); -- PEMS_INTEGER, PEMDCMLE
 
pragma FIPSFLAG('<=', 1450);
 
==== '>' ====
 
  function '>'  (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('>',1, 3, 5); -- PEMS_INTEGER, PEMDCMGT
 
pragma FIPSFLAG('>', 1450);
 
==== '>=' ====
 
  function '>=' (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('>=',3, 3, 6); -- PEMS_INTEGER, PEMDMGE
 
pragma FIPSFLAG('>=', 1450);
 
 
 
  --  Since SQL permits short-circuit evaluation, the 'and' and 'or'
 
  --  operations will always be interpreted as 'and then' and 'or else'
 
  --  when they occur in conditional statements.
 
 
 
==== XOR ====
 
  function XOR (LEFT BOOLEAN, RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('XOR',8, 3, 9); -- PEMS_INTEGER, INT_XOR
 
pragma FIPSFLAG('XOR', 1450);
 
 
 
==== NOT ====
 
  function 'NOT' (RIGHT BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('NOT',9, 3, 10); -- PEMS_INTEGER, INT_NOT
 
 
 
==== IS NULL ====
 
  function 'IS NULL' (B BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);  -- PEMS_INTEGER, PEMDNUL
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== IS NOT NULL ====
 
  function 'IS NOT NULL' (B BOOLEAN) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50); -- PEMS_INTEGER, PEMDNUL
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== NVL ====
 
  function NVL (B1 BOOLEAN, B2 BOOLEAN) return BOOLEAN;
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== '=' ====
 
  function '='  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('=',2, 1, 14); -- PEMS_CHAR, PEMDCMEQ (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('=', 1454);
 
==== '!=' ====
 
  function '!=' (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('!=',5, 1, 15);  -- PEMS_CHAR, PEMDCMNE (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('!=', 1454);
 
==== '<' ====
 
  function '<'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('<',4, 1, 16); -- PEMS_CHAR, PEMDCMLT (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('<', 1454);
 
==== '<=' ====
 
  function '<=' (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('<=',6, 1, 17); -- PEMS_CHAR, PEMDCMLE (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('<=', 1454);
 
==== '>'' ====
 
  function '>'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('>',1, 1, 18); -- PEMS_CHAR, PEMDCMGT (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('>', 1454);
 
==== '>'' ====
 
  function '>=' (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('>=',3, 1, 19); -- PEMS_CHAR, PEMDCMGE (VARCHAR2 SEMANTICS)
 
pragma FIPSFLAG('>=', 1454);
 
 
 
==== '||' ====
 
  function '||' (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET LEFT%CHARSET;
 
pragma BUILTIN('||',25, 1, 7); -- PEMS_CHAR, CHAR_CONCAT
 
pragma FIPSFLAG('||', 1454);
 
 
 
==== CONCAT ====
 
  function CONCAT(LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
  RIGHT VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET LEFT%CHARSET;
 
pragma BUILTIN(CONCAT,25, 1, 7); -- PEMS_CHAR, CHAR_CONCAT
 
pragma FIPSFLAG(CONCAT, 1454);
 
 
 
==== LENGTH ====
 
  function LENGTH(ch VARCHAR2 CHARACTER SET ANY_CS) return natural;
 
pragma FIPSFLAG('LENGTH', 1452);
 
 
 
  -- In SUBSTR, LEN defaults to remainder of string
 
  -- In substr and instr, a negative value of parameter POS means to
 
  -- count from the right end of the string.
 
==== SUBSTR  ====
 
  function SUBSTR(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  POS PLS_INTEGER,
 
  LEN PLS_INTEGER := 2147483647)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTR', 1452);
 
 
 
  -- Find nth occurrence of str1 in str2 starting at pos
 
==== INSTR  ====
 
  function INSTR(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
 
POS PLS_INTEGER := 1,
 
NTH POSITIVE := 1) return PLS_INTEGER;
 
pragma FIPSFLAG('INSTR', 1452);
 
 
 
==== UPPER ====
 
  function UPPER(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('UPPER', 1452);
 
==== LOWER ====
 
  function LOWER(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('LOWER', 1452);
 
==== ASCII ====
 
  function ASCII(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return INTEGER; -- should be ASCII.CHRANGE
 
pragma FIPSFLAG('ASCII', 1452);
 
==== ASCIISTR ====
 
  function ASCIISTR(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('ASCIISTR', 1452);
 
==== UNISTR ====
 
  function UNISTR(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return NVARCHAR2;
 
pragma FIPSFLAG('UNISTR', 1452);
 
==== CHR ====
 
  function CHR(n INTEGER) return varchar2;  -- N should be ASCII.CHRANGE
 
pragma FIPSFLAG('CHR', 1452);
 
====  ====
 
  function  SYS$STANDARD_CHR"(n INTEGER,csn VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET csn%CHARSET;
 
pragma FIPSFLAG(' SYS$STANDARD_CHR', 1452);
 
==== INITCAP ====
 
  function INITCAP(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('INITCAP', 1452);
 
==== SOUNDEX ====
 
  function SOUNDEX(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('SOUNDEX', 1452);
 
 
 
==== LPAD ====
 
  function LPAD(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
LEN pls_integer,
 
PAD VARCHAR2 CHARACTER SET STR1%CHARSET)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LPAD', 1452);
 
==== LPAD ====
 
  function LPAD(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
LEN pls_integer)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
  pragma FIPSFLAG('LPAD', 1452);
 
 
 
==== RPAD ====
 
  function RPAD(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
LEN pls_integer,
 
PAD VARCHAR2 CHARACTER SET STR1%CHARSET)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RPAD', 1452);
 
==== RPAD ====
 
  function RPAD(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
LEN pls_integer)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RPAD', 1452);
 
 
 
==== TRANSLATE ====
 
  function TRANSLATE(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
SRC VARCHAR2 CHARACTER SET STR1%CHARSET,
 
DEST VARCHAR2 CHARACTER SET STR1%CHARSET)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('TRANSLATE', 1452);
 
 
 
==== REPLACE ====
 
  function REPLACE(SRCSTR VARCHAR2 CHARACTER SET ANY_CS,
 
  OLDSUB VARCHAR2 CHARACTER SET SRCSTR%CHARSET,
 
  NEWSUB VARCHAR2 CHARACTER SET SRCSTR%CHARSET := NULL)
 
return VARCHAR2 CHARACTER SET SRCSTR%CHARSET;
 
pragma FIPSFLAG('REPLACE', 1452);
 
 
 
==== LTRIM ====
 
  function LTRIM(STR1 VARCHAR2 CHARACTER SET ANY_CS := ' ',
 
TSET VARCHAR2 CHARACTER SET STR1%CHARSET)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LTRIM', 1452);
 
==== LTRIM ====
 
  function LTRIM(STR1 VARCHAR2 CHARACTER SET ANY_CS := ' ')
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LTRIM', 1452);
 
 
 
==== RTRIM ====
 
  function RTRIM(STR1 VARCHAR2 CHARACTER SET ANY_CS := ' ',
 
TSET VARCHAR2 CHARACTER SET STR1%CHARSET)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RTRIM', 1452);
 
==== RTRIM ====
 
  function RTRIM(STR1 VARCHAR2 CHARACTER SET ANY_CS := ' ')
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RTRIM', 1452);
 
 
 
==== LIKE ====
 
  function 'LIKE' (str VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== NOT_LIKE ====
 
  function 'NOT_LIKE' (str VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== LIKE ====
 
  function 'LIKE' (str VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET str%CHARSET,
 
  esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== NOT_LIKE ====
 
  function 'NOT_LIKE' (str VARCHAR2 CHARACTER SET ANY_CS,
 
  pat VARCHAR2 CHARACTER SET str%CHARSET,
 
  esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== IS ====
 
  function 'IS NULL' (s VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 1, 20);  -- PEMS_CHAR, PEMDNUL
 
==== IS ====
 
  function 'IS NOT NULL' (s VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 1, 50); -- PEMS_CHAR, PEMDNUL
 
 
 
==== NVL ====
 
  function NVL(s1 VARCHAR2 CHARACTER SET ANY_CS,
 
  s2 VARCHAR2 CHARACTER SET s1%CHARSET)
 
return VARCHAR2 CHARACTER SET s1%CHARSET;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
 
 
==== '=' ====
 
  function '='  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
pragma BUILTIN('=',2, 2, 1); -- PEMS_NUMBER, PEMDCMEQ
 
==== '!=' ====
 
  function '!=' (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;  -- also <> and ~=
 
pragma BUILTIN('!=',5, 2, 2); -- PEMS_NUMBER, PEMDCMNE
 
pragma FIPSFLAG('!=', 1452);
 
==== '<' ====
 
  function '<'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
pragma BUILTIN('<',4, 2, 3); -- PEMS_NUMBER, PEMDCMLT
 
==== '<=' ====
 
  function '<=' (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
pragma BUILTIN('<=',6, 2, 4); -- PEMS_NUMBER, PEMDCMLE
 
==== '>' ====
 
  function '>'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
pragma BUILTIN('>',1, 2, 5); -- PEMS_NUMBER, PEMDCMGT
 
==== '>=' ====
 
  function '>=' (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
pragma BUILTIN('>=',3, 2, 6); -- PEMS_NUMBER, PEMDCMGE
 
 
 
==== IS NULL ====
 
  function 'IS NULL' (n NUMBER) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0); -- PEMS_NUMBER, PEMDNUL
 
==== IS NOT NULL ====
 
  function 'IS NOT NULL' (n NUMBER) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50); -- PEMS_NUMBER, PEMDNUL
 
 
 
==== NVL ====
 
  function NVL(n1 NUMBER, n2 NUMBER) return NUMBER;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
==== '+' ====
 
  function '+' (RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('+',14, 0, 1); -- PEMS_QUICK
 
==== '-' ====
 
  function '-' (RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('-',15, 2, 7); -- PEMS_NUMBER, NUM_NEG
 
==== ABS ====
 
  function ABS(n NUMBER) return NUMBER;
 
pragma FIPSFLAG('ABS', 1452);
 
 
 
==== '+' ====
 
  function '+' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('+',14, 2, 8); -- PEMS_NUMBER, NUM_ADD
 
==== '-' ====
 
  function '-' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('-',15, 2, 9); -- PEMS_NUMBER, NUM_SUB
 
==== '*' ====
 
  function '*' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('*',17, 2, 10); -- PEMS_NUMBER, NUM_MUL
 
==== '/' ====
 
  function '/' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma BUILTIN('/',18, 2, 11); -- PEMS_NUMBER, NUM_DIV
 
 
 
==== REM ====
 
  function 'REM' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma FIPSFLAG('REM', 1452);
 
==== MOD ====
 
  function 'MOD'(n1 NUMBER, n2 NUMBER) return NUMBER;
 
pragma FIPSFLAG('MOD', 1452);
 
 
 
==== '**' ====
 
  function '**' (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
pragma FIPSFLAG('**', 1452);
 
 
 
==== FLOOR ====
 
  function FLOOR(n NUMBER) return NUMBER;
 
pragma FIPSFLAG('FLOOR', 1452);
 
==== CEIL ====
 
  function CEIL(n NUMBER) return NUMBER;
 
pragma FIPSFLAG('CEIL', 1452);
 
==== SQRT ====
 
  function SQRT(n NUMBER) return NUMBER;
 
pragma FIPSFLAG('SQRT', 1452);
 
==== SIGN ====
 
  function SIGN(n NUMBER) return SIGNTYPE;
 
  pragma FIPSFLAG('SIGN', 1452);
 
 
 
==== COS ====
 
  function COS(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('COS', 1452);
 
==== SIN ====
 
  function SIN(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('SIN', 1452);
 
==== TAN ====
 
  function TAN(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('TAN', 1452);
 
==== COSH ====
 
  function COSH(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('COSH', 1452);
 
==== SINH ====
 
  function SINH(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('SINH', 1452);
 
==== TANH ====
 
  function TANH(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('TANH', 1452);
 
 
 
==== EXP ====
 
  function EXP(N NUMBER) return NUMBER;
 
==== LN  ====
 
  function LN(N NUMBER) return NUMBER;
 
 
 
==== BITAND ====
 
  function BITAND (LEFT pls_integer, RIGHT pls_integer)
 
return pls_integer;
 
==== BITAND ====
 
  function BITAND (LEFT number, RIGHT number)
 
return number;
 
==== LOG ====
 
  function LOG (LEFT NUMBER, RIGHT NUMBER) return NUMBER;
 
 
 
==== TRUNC ====
 
  function TRUNC (n NUMBER, places pls_integer := 0) return NUMBER;
 
pragma FIPSFLAG('TRUNC', 1452);
 
 
 
==== ROUND ====
 
  function ROUND (LEFT NUMBER, RIGHT pls_integer := 0) return NUMBER;
 
pragma FIPSFLAG('ROUND', 1452);
 
 
 
==== POWER ====
 
  function POWER (n NUMBER, e NUMBER) return NUMBER;
 
pragma FIPSFLAG('POWER', 1452);
 
 
 
==== '=' ====
 
  function '='  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
pragma BUILTIN('=',2, 12, 1); -- PEMS_DATE, PEMDCMEQ
 
pragma FIPSFLAG('=', 1450);
 
==== '!=' ====
 
  function '!=' (LEFT DATE, RIGHT DATE) return BOOLEAN;  -- also <> and ~=
 
pragma BUILTIN('!=',5, 12, 2); -- PEMS_DATE, PEMDCMNE
 
pragma FIPSFLAG('!=', 1450);
 
==== '<' ====
 
  function '<'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
pragma BUILTIN('<',4, 12, 3); -- PEMS_DATE, PEMDCMLT
 
pragma FIPSFLAG('<', 1450);
 
==== '<=' ====
 
  function '<=' (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
pragma BUILTIN('<=',6, 12, 4); -- PEMS_DATE, PEMDCMLE
 
pragma FIPSFLAG('<=', 1450);
 
==== '>' ====
 
  function '>'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
pragma BUILTIN('>',1, 12, 5);  -- PEMS_DATE, PEMDCMGT
 
pragma FIPSFLAG('>', 1450);
 
==== '>=' ====
 
  function '>=' (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
pragma BUILTIN('>=',3, 12, 6);  -- PEMS_DATE, PEMDCMGE
 
pragma FIPSFLAG('>=', 1450);
 
 
 
==== '+' ====
 
  function '+' (LEFT DATE, RIGHT NUMBER) return DATE;
 
pragma BUILTIN('+',14, 12, 7); -- PEMS_DATE, DATE_ADD1
 
pragma FIPSFLAG('+', 1450);
 
==== '+' ====
 
  function '+' (LEFT NUMBER, RIGHT DATE) return DATE;
 
pragma BUILTIN('+',14, 12, 8); -- PEMS_DATE, DATE_ADD2
 
pragma FIPSFLAG('+', 1450);
 
==== '-' ====
 
  function '-' (LEFT DATE, RIGHT NUMBER) return DATE;
 
pragma BUILTIN('-',15, 12, 9); -- PEMS_DATE, DATE_SUB1
 
pragma FIPSFLAG('-', 1450);
 
==== '-' ====
 
  function '-' (LEFT NUMBER, RIGHT DATE) return DATE;
 
pragma BUILTIN('-',15, 12, 10); -- PEMS_DATE, DATE_SUB2
 
pragma FIPSFLAG('-', 1450);
 
==== '-' ====
 
  function '-' (LEFT DATE, RIGHT DATE) return NUMBER;
 
pragma BUILTIN('-',15, 12, 11); -- PEMS_DATE, DATE_SUB3
 
pragma FIPSFLAG('-', 1450);
 
 
 
==== LAST_DAY ====
 
  function LAST_DAY(RIGHT DATE) return DATE;
 
pragma BUILTIN('LAST_DAY',38, 12, 12); -- PEMS_DATE, DATE_LAST_DAY
 
pragma FIPSFLAG('LAST_DAY', 1450);
 
==== ADD_MONTHS ====
 
  function ADD_MONTHS(LEFT DATE, RIGHT NUMBER) return DATE;
 
pragma BUILTIN('ADD_MONTHS',39, 12, 13); -- PEMS_DATE, DATE_ADD_MONTHS1
 
pragma FIPSFLAG('ADD_MONTHS', 1450);
 
==== ADD_MONTHS ====
 
  function ADD_MONTHS(LEFT NUMBER, RIGHT DATE) return DATE;
 
pragma BUILTIN('ADD_MONTHS',39, 12, 14); -- PEMS_DATE, DATE_ADD_MONTHS2
 
pragma FIPSFLAG('ADD_MONTHS', 1450);
 
 
 
==== MONTHS_BETWEEN ====
 
  function MONTHS_BETWEEN(LEFT DATE, RIGHT DATE) return NUMBER;
 
pragma BUILTIN('MONTHS_BETWEEN',42, 12, 15); -- PEMS_DATE, DATE_MONTHS_BET
 
pragma FIPSFLAG('MONTHS_BETWEEN', 1450);
 
==== NEXT_DAY ====
 
  function NEXT_DAY(LEFT DATE, RIGHT VARCHAR2) return DATE;
 
pragma BUILTIN('NEXT_DAY',43, 12, 16); -- PEMS_DATE, DATE_NEXT_DAY
 
pragma FIPSFLAG('NEXT_DAY', 1450);
 
==== ROUND ====
 
  function ROUND(RIGHT DATE) return DATE;
 
pragma BUILTIN('ROUND',24, 12, 17); -- PEMS_DATE, DATE_ROUND
 
pragma FIPSFLAG('ROUND', 1450);
 
==== NEW_TIME ====
 
  function NEW_TIME(RIGHT DATE, MIDDLE VARCHAR2, LEFT VARCHAR2) return DATE;
 
pragma FIPSFLAG('NEW_TIME', 1450);
 
 
 
==== IS NULL ====
 
  function 'IS NULL' (d DATE) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 12, 0);  -- PEMS_DATE, PEMDNUL
 
pragma FIPSFLAG('IS NULL', 1450);
 
==== IS NOT NULL ====
 
  function 'IS NOT NULL' (d DATE) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 12, 50);  -- PEMS_DATE, PEMDNUL
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
==== NVL ====
 
  function NVL (d1 DATE, d2 DATE) return DATE;
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== TRUNC ====
 
  function TRUNC(LEFT DATE) return DATE;
 
pragma BUILTIN('TRUNC',51, 12, 20); -- PEMS_DATE, DATE_TRUNC1
 
pragma FIPSFLAG('TRUNC', 1450);
 
==== TRUNC ====
 
  function TRUNC(LEFT DATE, RIGHT VARCHAR2) return DATE;
 
pragma BUILTIN('TRUNC',51, 12, 21); -- PEMS_DATE, DATE_TRUNC2
 
pragma FIPSFLAG('TRUNC', 1450);
 
==== ROUND ====
 
  function ROUND(LEFT DATE, RIGHT VARCHAR2) return DATE;
 
pragma BUILTIN('ROUND',24, 12, 22); -- PEMS_DATE, DATE_ROUND2
 
pragma FIPSFLAG('ROUND', 1450);
 
 
 
==== TO_DATE ====
 
  function TO_DATE(RIGHT VARCHAR2 character set any_cs)  return DATE;
 
pragma BUILTIN('TO_DATE',40, 1, 10); -- PEMS_CHAR, CHR_CNV_DAT
 
pragma FIPSFLAG('TO_DATE', 1450);
 
 
 
==== TO_DATE ====
 
  function TO_DATE (LEFT VARCHAR2 character set any_cs,
 
  RIGHT VARCHAR2 character set LEFT%charset) return DATE;
 
pragma BUILTIN('TO_DATE',40, 1, 8); -- PEMS_CHAR, CHR_CNV_DATE
 
pragma FIPSFLAG('TO_DATE', 1450);
 
 
 
==== TO_DATE ====
 
  function TO_DATE (LEFT NUMBER, RIGHT VARCHAR2) return DATE;
 
pragma FIPSFLAG('TO_DATE', 1450);
 
 
 
==== TO_DATE ====
 
  function TO_DATE(left varchar2 character set any_cs,
 
  format varchar2 character set LEFT%charset,
 
  parms varchar2 character set LEFT%charset) return date;
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR (RIGHT VARCHAR2) return VARCHAR2;
 
pragma BUILTIN('TO_CHAR',14, 0, 2);
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR (LEFT DATE, RIGHT VARCHAR2) return VARCHAR2;
 
pragma BUILTIN('TO_CHAR',41, 12, 19); -- PEMS_DATE, DAT_CNV_CHR1
 
pragma FIPSFLAG('TO_CHAR', 1450);
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR (LEFT NUMBER, RIGHT VARCHAR2) return VARCHAR2;
 
pragma BUILTIN('TO_CHAR',41, 2, 14); -- PEMS_NUMBER, NUM_CNV_CHR
 
 
 
==== TO_NUMBER ====
 
  function TO_NUMBER (RIGHT NUMBER) RETURN NUMBER;
 
pragma BUILTIN('TO_NUMBER',14, 0, 1); -- PEMS_QUICK
 
 
 
==== TO_NUMBER ====
 
  function TO_NUMBER (RIGHT VARCHAR2 character set any_cs)return NUMBER;
 
pragma BUILTIN('TO_NUMBER',48, 1, 9); -- PEMS_CHAR, CHR_CNV_NUM
 
 
 
==== TO_NUMBER ====
 
  function TO_NUMBER(left varchar2 character set any_cs,
 
format varchar2 character set LEFT%charset)
 
return number;
 
==== TO_NUMBER ====
 
  function TO_NUMBER(left varchar2 character set any_cs,
 
format varchar2 character set LEFT%charset,
 
parms varchar2 character set LEFT%charset)
 
return number;
 
 
 
  -- Define SQL predicates.  These don't gen code, so no body is needed.
 
 
 
==== call ====
 
  -- PRIOR is WEIRD - For now, it will be treated as a function call.
 
==== only  ====
 
  -- Does the function only take a column name?  how about its use in
 
  -- a predicate?
 
==== PRIOR  ====
 
  function 'PRIOR'(colname VARCHAR2 CHARACTER SET ANY_CS)
 
  return VARCHAR2 CHARACTER SET colname%CHARSET;
 
  pragma FIPSFLAG('PRIOR', 1452);
 
==== PRIOR  ====
 
  function 'PRIOR'(colname NUMBER) return NUMBER;
 
  pragma FIPSFLAG('PRIOR', 1452);
 
==== PRIOR  ====
 
  function 'PRIOR'(colname DATE) return DATE;
 
  pragma FIPSFLAG('PRIOR', 1450);
 
 
 
  -- Outer Join has same problem as PRIOR
 
==== '(+)'  ====
 
  function '(+)'(colname VARCHAR2 CHARACTER SET ANY_CS)
 
  return VARCHAR2 CHARACTER SET colname%CHARSET;
 
==== '(+)'  ====
 
  function '(+)'(colname NUMBER) return NUMBER;
 
==== '(+)'  ====
 
  function '(+)'(colname DATE) return DATE;
 
  pragma FIPSFLAG('(+)', 1450);
 
 
 
==== '=ANY' ====
 
  function '=ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '=ANY'  ====
 
  function '=ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('=ANY', 1450);
 
==== '=ANY'  ====
 
  function '=ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '!=ANY' ====
 
  function '!=ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '!=ANY'  ====
 
  function '!=ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('!=ANY', 1450);
 
==== '!=ANY'  ====
 
  function '!=ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<ANY' ====
 
  function '<ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<ANY'  ====
 
  function '<ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<ANY', 1450);
 
==== '<ANY'  ====
 
  function '<ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<=ANY' ====
 
  function '<=ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<=ANY'  ====
 
  function '<=ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<=ANY', 1450);
 
==== '<=ANY'  ====
 
  function '<=ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>ANY' ====
 
  function '>ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>ANY' ====
 
  function '>ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>ANY', 1450);
 
==== '>  ====
 
  function '>ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>=ANY' ====
 
  function '>=ANY'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>=ANY'  ====
 
  function '>=ANY'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>=ANY', 1450);
 
==== '>=ANY'  ====
 
  function '>=ANY'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '=ALL' ====
 
  function '=ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '=ALL'  ====
 
  function '=ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('=ALL', 1450);
 
==== '=ALL'  ====
 
  function '=ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '!=ALL' ====
 
  function '!=ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '!=ALL'  ====
 
  function '!=ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('!=ALL', 1450);
 
==== '!=ALL'  ====
 
  function '!=ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<ALL' ====
 
  function '<ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<ALL'  ====
 
  function '<ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<ALL', 1450);
 
==== '<ALL'  ====
 
  function '<ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<=ALL' ====
 
  function '<=ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<=ALL'  ====
 
  function '<=ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<=ALL', 1450);
 
==== '<=ALL'  ====
 
  function '<=ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>ALL' ====
 
  function '>ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>ALL'  ====
 
  function '>ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>ALL', 1450);
 
==== '>ALL'  ====
 
  function '>ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>=ALL' ====
 
  function '>=ALL'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>=ALL'  ====
 
  function '>=ALL'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>=ALL', 1450);
 
==== '>  ====
 
  function '>=ALL'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '=SOME' ====
 
  function '=SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '=SOME'  ====
 
  function '=SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('=SOME', 1450);
 
==== '=SOME'  ====
 
  function '=SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '!=SOME' ====
 
  function '!=SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
  RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '!=SOME'  ====
 
  function '!=SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('!=SOME', 1450);
 
==== '!=SOME'  ====
 
  function '!=SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<SOME' ====
 
  function '<SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<SOME'  ====
 
  function '<SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<SOME', 1450);
 
==== '<SOME'  ====
 
  function '<SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '<=SOME' ====
 
  function '<=SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
  RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '<=SOME'  ====
 
  function '<=SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('<=SOME', 1450);
 
==== '<=SOME'  ====
 
  function '<=SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>SOME' ====
 
  function '>SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>SOME'  ====
 
  function '>SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>SOME', 1450);
 
==== '>SOME'  ====
 
  function '>SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
==== '>SOME' ====
 
  function '>=SOME'  (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
  RIGHT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
  return BOOLEAN;
 
==== '>SOME'  ====
 
  function '>=SOME'  (LEFT DATE, RIGHT DATE) return BOOLEAN;
 
  pragma FIPSFLAG('>=SOME', 1450);
 
==== '>SOME'  ====
 
  function '>=SOME'  (LEFT NUMBER, RIGHT NUMBER) return BOOLEAN;
 
 
 
  -- SQL Transaction routines
 
  procedure SET_TRANSACTION_USE(vc VARCHAR2);
 
  procedure COMMIT;
 
  procedure COMMIT_CM(vc VARCHAR2);
 
  procedure ROLLBACK_NR;
 
  procedure ROLLBACK_SV(Save_Point CHAR);
 
  procedure SAVEPOINT(Save_Point CHAR);
 
 
 
==== SYSDATE ====
 
  function SYSDATE return DATE;
 
pragma FIPSFLAG('SYSDATE', 1452);
 
 
 
==== UID ====
 
  function UID return PLS_INTEGER;
 
pragma FIPSFLAG('UID', 1452);
 
 
 
==== USER ====
 
  function USER return VARCHAR2;
 
 
 
==== USERENV ====
 
  function USERENV (envstr VARCHAR2) return VARCHAR2;
 
pragma FIPSFLAG('USERENV', 1452);
 
 
 
  -- ROWID: this dreadful identifier is supposed to represent a datatype
 
========
 
  -- outside of SQL and and a pseudo-column (function, to us) when inside
 
  -- a sql statement.  ADA data model doesn't allow for any
 
==== X  ====
 
  -- function X return X;
 
  -- so we must special case this.  Yuk.  There's special-case code in ph2nre
 
  -- which maps "rowid" to "rowid " if we're inside a SQL stmt.
 
==== ROWID  ====
 
  function ROWID " return ROWID;
 
pragma builtin('ROWID ', 1, 209, 240);  -- this had better never be called.
 
 
 
==== NULLFN ====
 
  function NULLFN (str VARCHAR2) return RAW;
 
pragma builtin('NULLFN', 1, 0, 1);
 
 
 
==== HEXTORAW ====
 
  function HEXTORAW (c VARCHAR2) return RAW;
 
pragma builtin('HEXTORAW', 1, 23, 1);
 
 
 
==== RAWTOHEX ====
 
  function RAWTOHEX (r RAW) return VARCHAR2;
 
pragma builtin('RAWTOHEX', 1, 23, 2);
 
 
 
==== CHARTOROWID ====
 
  function CHARTOROWID (str VARCHAR2) return ROWID;
 
pragma builtin('CHARTOROWID', 1, 0, 1);
 
 
 
==== ROWIDTOCHAR ====
 
  function ROWIDTOCHAR (str ROWID) return VARCHAR2;
 
pragma builtin('ROWIDTOCHAR', 1, 0, 1);
 
 
 
 
 
  -- Trusted*Oracle additions
 
==== ROWLABEL  ====
 
  Function ROWLABEL return MLSLABEL; -- pseudo column
 
 
 
==== TO_CHAR ====
 
  Function TO_CHAR(label MLSLABEL, format VARCHAR2) return VARCHAR2;
 
pragma BUILTIN('TO_CHAR',90, 4, 19); -- PEMS_DATE, MLS_CNV_CHR1
 
pragma FIPSFLAG('TO_CHAR', 1450);
 
 
 
==== TO_LABEL ====
 
  Function TO_LABEL(label VARCHAR2, format VARCHAR2 ) return  MLSLABEL;
 
pragma BUILTIN('TO_LABEL',90, 4, 8); -- PEMS_CHAR, CHR_CNV_MLS
 
pragma FIPSFLAG('TO_LABEL', 1450);
 
 
 
==== TO_LABEL ====
 
  Function TO_LABEL(label VARCHAR2 ) return  MLSLABEL;
 
pragma BUILTIN('TO_LABEL',90, 4, 2); -- PEMS_CHAR, CHR_CNV_MLS
 
pragma FIPSFLAG('TO_LABEL', 1450);
 
 
 
  -- vararg routines - icds in stdbdy
 
==== LEAST_UB  ====
 
  Function LEAST_UB(pattern MLSLABEL) return MLSLABEL;
 
pragma BUILTIN('LEAST_UB',90, 4, 3); -- PEMS_CHAR, CHR_CNV_MLS
 
==== GREATEST_LB ====
 
  Function GREATEST_LB (pattern MLSLABEL) return MLSLABEL;
 
pragma BUILTIN('GREATEST_LB',90, 4, 4); -- PEMS_CHAR, CHR_CNV_MLS
 
 
 
==== '>=' ====
 
  Function '>=' (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== '>''  ====
 
  Function '>'  (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== '<='  ====
 
  Function '<=' (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== '<'  ====
 
  Function '<'  (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== '='  ====
 
  Function '='  (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== '!='  ====
 
  Function '!=' (label1 MLSLABEL, label2 MLSLABEL) return BOOLEAN;
 
==== 'IS NULL'  ====
 
  function 'IS NULL' (label MLSLABEL) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 1, 20); -- same "cod" as IS NULL(varchar2)
 
==== 'IS NOT NULL' ====
 
  function 'IS NOT NULL' (label MLSLABEL) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 1, 50);
 
 
 
==== NVL ====
 
  function NVL(label1 MLSLABEL, label2 MLSLABEL) return MLSLABEL;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
  -- group functions
 
==== LUB  ====
 
  Function LUB (label MLSLABEL) return MLSLABEL;
 
==== GLB  ====
 
  Function GLB (label MLSLABEL) return MLSLABEL;
 
 
 
  -- end of Trusted*Oracle additions
 
 
 
 
 
  -- beginning of NLS routines
 
 
 
==== NLSSORT ====
 
  function NLSSORT(c VARCHAR2 CHARACTER SET ANY_CS) return RAW;
 
pragma FIPSFLAG('NLSSORT', 1452);
 
==== NLSSORT ====
 
  function NLSSORT(c VARCHAR2 CHARACTER SET ANY_CS, c2 VARCHAR2) return RAW;
 
pragma FIPSFLAG('NLSSORT', 1452);
 
==== NLS_UPPER ====
 
  function NLS_UPPER(ch VARCHAR2 CHARACTER SET ANY_CS,
 
parms VARCHAR2 CHARACTER SET ch%CHARSET)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_UPPER', 1452);
 
==== NLS_UPPER ====
 
  function NLS_UPPER(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_UPPER', 1452);
 
==== NLS_LOWER ====
 
  function NLS_LOWER(ch VARCHAR2 CHARACTER SET ANY_CS,
 
parms VARCHAR2 CHARACTER SET ch%CHARSET)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_LOWER', 1452);
 
==== NLS_LOWER ====
 
  function NLS_LOWER(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_LOWER', 1452);
 
==== NLS_INITCAP ====
 
  function NLS_INITCAP(ch VARCHAR2 CHARACTER SET ANY_CS,
 
  parms VARCHAR2 CHARACTER SET ch%CHARSET)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_INITCAP', 1452);
 
==== NLS_INITCAP ====
 
  function NLS_INITCAP(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_INITCAP', 1452);
 
 
 
==== LENGTHB ====
 
  function LENGTHB(ch VARCHAR2 CHARACTER SET ANY_CS) return NUMBER;
 
pragma FIPSFLAG('LENGTHB', 1452);
 
==== SUBSTRB ====
 
  function SUBSTRB(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  POS PLS_INTEGER,
 
  LEN PLS_INTEGER := 2147483647)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTRB', 1452);
 
==== INSTRB ====
 
  function INSTRB(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
 
POS PLS_INTEGER := 1,
 
NTH POSITIVE := 1) return PLS_INTEGER;
 
pragma FIPSFLAG('INSTRB', 1452);
 
 
 
==== TO_SINGLE_BYTE ====
 
  function TO_SINGLE_BYTE(c VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET c%CHARSET;
 
pragma FIPSFLAG('TO_SINGLE_BYTE', 1452);
 
==== TO_MULTI_BYTE ====
 
  function TO_MULTI_BYTE(c VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET c%CHARSET;
 
pragma FIPSFLAG('TO_MULTI_BYTE', 1452);
 
 
 
  -- Next two added for NLS 6/3/92 JEM.
 
==== TO_CHAR  ====
 
  function TO_CHAR(left date, format varchar2, parms varchar2) return varchar2;
 
==== TO_CHAR  ====
 
  function TO_CHAR(left number, format varchar2, parms varchar2)
 
return varchar2;
 
==== NLS_CHARSET_NAME ====
 
  function NLS_CHARSET_NAME(csetid PLS_INTEGER) return VARCHAR2;
 
==== NLS_CHARSET_ID  ====
 
  function NLS_CHARSET_ID(csetname VARCHAR2) return PLS_INTEGER;
 
==== NLS_CHARSET_DECL_LEN  ====
 
  function NLS_CHARSET_DECL_LEN(bytecnt NUMBER, csetid NUMBER)
 
return PLS_INTEGER;
 
 
 
  -- end of NLS routines
 
 
 
==== CONVERT ====
 
  function CONVERT(src VARCHAR2 character set any_cs,
 
  destcset VARCHAR2)
 
  return VARCHAR2 character set src%charset;
 
==== CONVERT====
 
  function CONVERT(src VARCHAR2 character set any_cs,
 
  destcset VARCHAR2,
 
  srccset VARCHAR2)
 
  return VARCHAR2 character set src%charset;
 
 
 
==== "SYS$STANDARD_TRANSLATE" ====
 
  function  "SYS$STANDARD_TRANSLATE" (src VARCHAR2 CHARACTER SET ANY_CS,
 
  csn VARCHAR2 CHARACTER SET ANY_CS)
 
  return VARCHAR2 CHARACTER SET csn%CHARSET;
 
pragma FIPSFLAG(' SYS$STANDARD_TRANSLATE',1452);
 
 
 
==== VSIZE ====
 
  function VSIZE (e number ) return NUMBER;
 
  pragma builtin('VSIZE', 1, 0, 1);
 
==== VSIZE  ====
 
  function VSIZE (e DATE) return NUMBER;
 
  pragma builtin('VSIZE', 1, 0, 1);
 
==== VSIZE  ====
 
  function VSIZE (e VARCHAR2 CHARACTER SET ANY_CS) return NUMBER;
 
  pragma builtin('VSIZE', 1, 0, 1);
 
 
 
 
 
  -- dump( expr [,display_format[,start_pos[,length]]]) return VARCHAR2
 
==== DUMP  ====
 
  function DUMP(e varchar2 character set any_cs,
 
df pls_integer := null,sp pls_integer := null,
 
len pls_integer := null) return VARCHAR2;
 
  pragma builtin('DUMP', 1, 0, 1);
 
 
 
==== DUMP ====
 
  function DUMP(e number,df pls_integer := null,sp pls_integer := null,
 
  len pls_integer := null) return VARCHAR2;
 
  pragma builtin('DUMP', 1, 0, 1);
 
 
 
==== DUMP ====
 
  function DUMP(e date,df pls_integer := null,sp pls_integer := null,
 
  len pls_integer := null) return VARCHAR2;
 
  pragma builtin('DUMP', 1, 0, 1);
 
 
 
  --
 
  -- ACOS, ASIN, ATAN, ATAN2
 
  --  Inverse Trigonometric functions
 
  --  These functions return NULL if any of the inputs are NULL
 
  --
 
==== ACOS  ====
 
  function ACOS(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('ACOS', 1452);
 
 
 
==== ASIN ====
 
  function ASIN(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('ASIN', 1452);
 
 
 
==== ATAN ====
 
  function ATAN(N NUMBER) return NUMBER;
 
pragma FIPSFLAG('ATAN', 1452);
 
 
 
==== ATAN2 ====
 
  function ATAN2(x NUMBER, y NUMBER) return NUMBER;
 
  pragma FIPSFLAG('ATAN2', 1452);
 
 
 
  --#### This is the end of 7.3 Standard
 
 
 
  -- LOB IS NULL
 
==== 'IS NULL' ====
 
  function 'IS NULL' (n CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0); -- PEMS_NUMBER, PEMDNUL
 
==== 'IS NOT NULL'====
 
  function 'IS NOT NULL' (n CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50);
 
 
 
==== 'IS NULL' ====
 
  function 'IS NULL' (n BLOB) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0); -- PEMS_NUMBER, PEMDNUL
 
==== 'IS NOT NULL' ====
 
  function 'IS NOT NULL' (n BLOB) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50);
 
 
 
==== 'IS NULL' ====
 
  function 'IS NULL' (n BFILE) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0); -- PEMS_NUMBER, PEMDNUL
 
==== 'IS NOT NULL' ====
 
  function 'IS NOT NULL' (n BFILE) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50);
 
  -- end LOB IS NULL
 
 
 
  --****************************************************************
 
  -- 20 mar 96 =G=> In the following, arguments "1, 1, 1" to pragma BUILTIN
 
  -- e.g.,pragma builtin('whatever', 1, 1, 1)
 
  -- indicate that those three numeric arguments to pragma BUILTIN are unknown,
 
  -- because they are not yet implemented by the backend.
 
 
 
==== '=' ====
 
  function '='  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('=', 1, 1, 1);
 
pragma FIPSFLAG('=', 1450);
 
==== '!=' ====
 
  function '!=' (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('!=', 1, 1, 1);
 
pragma FIPSFLAG('!=', 1450);
 
==== '<' ====
 
  function '<'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('<', 1, 1, 1);
 
pragma FIPSFLAG('<', 1450);
 
==== '<=' ====
 
  function '<=' (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('<=', 1, 1, 1);
 
pragma FIPSFLAG('<=', 1450);
 
==== '>' ====
 
  function '>'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('>', 1, 1, 1);
 
pragma FIPSFLAG('>', 1450);
 
==== '>=' ====
 
  function '>=' (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('>=', 1, 1, 1);
 
pragma FIPSFLAG('>=', 1450);
 
 
 
==== '=ANY' ====
 
  function '=ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '!=ANY'  ====
 
  function '!=ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<ANY'  ====
 
  function '<ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<=ANY'  ====
 
  function '<=ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>ANY'  ====
 
  function '>ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>=ANY'  ====
 
  function '>=ANY'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '=ALL'  ====
 
  function '=ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '!=ALL'  ====
 
  function '!=ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<ALL'  ====
 
  function '<ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<=ALL'  ====
 
  function '<=ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>ALL'  ====
 
  function '>ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>=ALL'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '=SOME'  ====
 
  function '=SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '!=SOME'  ====
 
  function '!=SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<SOME'  ====
 
  function '<SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '<=SOME'  ====
 
  function '<=SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>SOME'  ====
 
  function '>SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
==== '>=SOME'  ====
 
  function '>=SOME'  (LEFT "<ADT_1>", RIGHT "<ADT_1>") return BOOLEAN;
 
 
 
  -- Outer Join
 
==== '(+)'  ====
 
  function '(+)'  ( colname "<ADT_1>") return "<ADT_1>";
 
pragma FIPSFLAG('(+)', 1450);
 
 
 
  --  GREATEST and LEAST are not yet supported for ADTs in 8.0.2.
 
==== GREATEST  ====
 
  --  function GREATEST (pattern "<ADT_1>") return "<ADT_1>";
 
  --pragma BUILTIN('GREATEST', 1, 1, 1);
 
 
 
==== LEAST ====
 
  --  function LEAST (pattern "<ADT_1>") return "<ADT_1>";
 
  --pragma BUILTIN('LEAST', 1, 1, 1);
 
 
 
==== DECODE ====
 
  function DECODE (expr "<ADT_1>", pat "<ADT_1>", res "<ADT_1>")
 
return "<ADT_1>";
 
pragma BUILTIN('DECODE', 1, 1, 1);
 
 
 
==== 'IS NULL' ====
 
  function 'IS NULL' (B "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== 'IS NOT NULL' ====
 
  function 'IS NOT NULL' (B "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== NVL ====
 
  function NVL (B1 "<ADT_1>", B2 "<ADT_1>") return "<ADT_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== VALUE ====
 
  function VALUE (item "<ADT_WITH_OID>") return "<ADT_1>";
 
pragma BUILTIN('VALUE', 1, 1, 1);
 
pragma FIPSFLAG('VALUE', 1450);
 
 
 
==== REF ====
 
  function REF (item "<ADT_WITH_OID>") return REF "<ADT_1>";
 
pragma BUILTIN('REF', 1, 1, 1);
 
pragma FIPSFLAG('REF', 1450);
 
 
 
==== DEREF ====
 
  function DEREF (r REF "<ADT_1>") return "<ADT_1>";
 
pragma BUILTIN('DEREF', 1, 1, 1);
 
pragma FIPSFLAG('DEREF', 1450);
 
 
 
  -- overloadings for REF ADT
 
 
 
==== 'IS NULL' ====
 
  function 'IS NULL' (B REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== 'IS NOT NULL'====
 
  function 'IS NOT NULL' (B REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== 'IS DANGLING'====
 
  function 'IS DANGLING' (B REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS DANGLING', 1, 1, 1);
 
pragma FIPSFLAG('IS DANGLING', 1450);
 
 
 
==== 'IS NOT DANGLING' ====
 
  function 'IS NOT DANGLING' (B REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT DANGLING', 1, 1, 1);
 
pragma FIPSFLAG('IS NOT DANGLING', 1450);
 
 
 
==== NVL ====
 
  function NVL (B1 REF "<ADT_1>", B2 REF "<ADT_1>") return REF "<ADT_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== '=' ====
 
  function '='  (LEFT REF "<ADT_1>", RIGHT REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('=', 0, 3, 1);
 
pragma FIPSFLAG('=', 1450);
 
 
 
==== '!=' ====
 
  function '!=' (LEFT REF "<ADT_1>", RIGHT REF "<ADT_1>") return BOOLEAN;
 
pragma BUILTIN('!=', 0, 3, 2);
 
pragma FIPSFLAG('!=', 1450);
 
 
 
==== '=' ====
 
  --  function '='  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
  --pragma BUILTIN('=', 1, 1, 1);
 
  --pragma FIPSFLAG('=', 1450);
 
  --
 
==== '!='  ====
 
  --  function '!=' (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
  --pragma BUILTIN('!=', 1, 1, 1);
 
  --pragma FIPSFLAG('!=', 1450);
 
  --
 
==== '=ANY'  ====
 
  --  function '=ANY'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
==== '!=ANY'  ====
 
  --  function '!=ANY'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
==== '=ALL'  ====
 
  --  function '=ALL'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
==== '!=ALL'  ====
 
  --  function '!=ALL'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
==== '=SOME'  ====
 
  --  function '=SOME'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
==== '!=SOME'  ====
 
  --  function '!=SOME'  (LEFT "<COLLECTION_1>", RIGHT "<COLLECTION_1>")
 
  --  return BOOLEAN;
 
  --
 
==== DECODE  ====
 
  --  function DECODE (expr "<COLLECTION_1>", pat "<COLLECTION_1>",
 
  --res "<COLLECTION_1>")
 
  --  return "<COLLECTION_1>";
 
  --pragma BUILTIN('DECODE', 1, 1, 1);
 
 
 
==== will ====
 
  -- Note that index-by tables are never NULL: this function will always
 
  -- return FALSE for them.
 
==== 'IS NULL'  ====
 
  function 'IS NULL' (B "<COLLECTION_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== will ====
 
  -- Note that index-by tables are never NULL: this function will always
 
  -- return TRUE for them.
 
==== 'IS NOT NULL'  ====
 
  function 'IS NOT NULL' (B "<COLLECTION_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== will ====
 
  -- Note that index-by tables are never NULL: this function will always
 
  -- return B1 for them.
 
==== NVL  ====
 
  function NVL (B1 "<COLLECTION_1>", B2 "<COLLECTION_1>")
 
return "<COLLECTION_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== 'IS NULL'====
 
  function 'IS NULL' (B "<REF_CURSOR_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== 'IS NOT NULL'====
 
  function 'IS NOT NULL' (B "<REF_CURSOR_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== NVL ====
 
  function NVL (B1 "<REF_CURSOR_1>", B2 "<REF_CURSOR_1>")
 
return "<REF_CURSOR_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== will ====
 
  -- Note that associative arrays are never NULL: this function will always
 
  -- return FALSE.
 
==== 'IS NULL'====
 
  function 'IS NULL' (B "<ASSOC_ARRAY_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== will ====
 
  -- Note that associative arrays are never NULL: this function will always
 
  -- return TRUE.
 
==== 'IS NOT NULL'  ====
 
  function 'IS NOT NULL' (B "<ASSOC_ARRAY_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== will ====
 
  -- Note that associative arrays are never NULL: this function will always
 
  -- return B1.
 
==== NVL  ====
 
  function NVL (B1 "<ASSOC_ARRAY_1>", B2 "<ASSOC_ARRAY_1>")
 
return "<ASSOC_ARRAY_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
==== EMPTY_CLOB ====
 
  function EMPTY_CLOB return clob;
 
==== EMPTY_BLOB  ====
 
  function EMPTY_BLOB return blob;
 
 
 
==== BFILENAME ====
 
  function BFILENAME(directory varchar2,filename varchar2) return BFILE;
 
 
 
==== "SYS$LOB_REPLICATION" ====
 
  function "SYS$LOB_REPLICATION" (x in blob) return blob;
 
==== "SYS$LOB_REPLICATION"  ====
 
  function "SYS$LOB_REPLICATION" (x in clob character set any_cs)
 
return clob character set x%charset;
 
 
 
  --#### This is the end of 8.0 Standard
 
 
 
  --  + overloadings
 
 
 
  -- begin subtract
 
========
 
  function  "SYS$DSINTERVALSUBTRACT"(LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED)
 
  return DSINTERVAL_UNCONSTRAINED ;
 
  function  "SYS$YMINTERVALSUBTRACT"(LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED)
 
  return YMINTERVAL_UNCONSTRAINED ;
 
==== '-'====
 
  function '-'(LEFT TIMESTAMP_UNCONSTRAINED, RIGHT YMINTERVAL_UNCONSTRAINED)
 
  return TIMESTAMP_UNCONSTRAINED;
 
==== '-'====
 
  function '-'(LEFT TIMESTAMP_UNCONSTRAINED, RIGHT DSINTERVAL_UNCONSTRAINED)
 
  return TIMESTAMP_UNCONSTRAINED;
 
 
 
==== "SYS$DSINTERVALSUBTRACT" ====
 
  function  "SYS$DSINTERVALSUBTRACT"
 
  (LEFT TIMESTAMP_TZ_UNCONSTRAINED, RIGHT TIMESTAMP_TZ_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED ;
 
==== "SYS$YMINTERVALSUBTRACT" ====
 
  function  SYS$YMINTERVALSUBTRACT"
 
  (LEFT TIMESTAMP_TZ_UNCONSTRAINED, RIGHT TIMESTAMP_TZ_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED ;
 
==== '-' ====
 
  function '-' (LEFT TIMESTAMP_TZ_UNCONSTRAINED, RIGHT YMINTERVAL_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED ;
 
==== '-' ====
 
  function '-' (LEFT TIMESTAMP_TZ_UNCONSTRAINED, RIGHT DSINTERVAL_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED ;
 
 
 
==== "SYS$DSINTERVALSUBTRACT" ====
 
  function  "SYS$DSINTERVALSUBTRACT" (LEFT TIME_UNCONSTRAINED,
 
  RIGHT TIME_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED ;
 
==== '-'  ====
 
  function '-' (LEFT TIME_UNCONSTRAINED, RIGHT DSINTERVAL_UNCONSTRAINED)
 
return TIME_UNCONSTRAINED ;
 
==== "SYS$DSINTERVALSUBTRACT" ====
 
  function  "SYS$DSINTERVALSUBTRACT"
 
  (LEFT TIME_TZ_UNCONSTRAINED, RIGHT TIME_TZ_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED ;
 
==== '-' ====
 
  function '-' (LEFT TIME_TZ_UNCONSTRAINED, RIGHT DSINTERVAL_UNCONSTRAINED)
 
return TIME_TZ_UNCONSTRAINED ;
 
==== "SYS$DSINTERVALSUBTRACT" ====
 
  function  "SYS$DSINTERVALSUBTRACT" (LEFT date, RIGHT date)
 
return DSINTERVAL_UNCONSTRAINED ;
 
==== "SYS$YMINTERVALSUBTRACT" ====
 
  function  "SYS$YMINTERVALSUBTRACT" (LEFT date, RIGHT date)
 
return YMINTERVAL_UNCONSTRAINED ;
 
==== '-' ====
 
  function '-' (LEFT date, RIGHT YMINTERVAL_UNCONSTRAINED) return date;
 
==== '-'  ====
 
  function '-' (LEFT date, RIGHT DSINTERVAL_UNCONSTRAINED) return date;
 
 
 
==== '-' ====
 
  function '-' (LEFT YMINTERVAL_UNCONSTRAINED, RIGHT YMINTERVAL_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED ;
 
==== '-' ====
 
  function '-' (LEFT DSINTERVAL_UNCONSTRAINED, RIGHT DSINTERVAL_UNCONSTRAINED)
 
  return DSINTERVAL_UNCONSTRAINED ;
 
 
 
  -- end subtract
 
 
 
  -- other datetime operators
 
 
 
==== '*' ====
 
  function '*' (LEFT number, RIGHT YMINTERVAL_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED ;
 
  function '*' (LEFT number, RIGHT DSINTERVAL_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED ;
 
  function '*' (LEFT YMINTERVAL_UNCONSTRAINED, RIGHT number)
 
return YMINTERVAL_UNCONSTRAINED ;
 
  function '*' (LEFT DSINTERVAL_UNCONSTRAINED, RIGHT number)
 
return DSINTERVAL_UNCONSTRAINED ;
 
 
 
==== '/' ====
 
  function '/' (LEFT YMINTERVAL_UNCONSTRAINED, RIGHT number)
 
return YMINTERVAL_UNCONSTRAINED ;
 
  function '/' (LEFT DSINTERVAL_UNCONSTRAINED, RIGHT number)
 
return DSINTERVAL_UNCONSTRAINED ;
 
 
 
 
 
==== current_date ====
 
  function current_date return date;
 
==== current_time  ====
 
  function current_time return TIME_TZ_UNCONSTRAINED;
 
==== current_timestamp  ====
 
  function current_timestamp return TIMESTAMP_TZ_UNCONSTRAINED;
 
 
 
==== TO_TIME ====
 
  function TO_TIME (RIGHT varchar2 character set any_cs) return
 
time_unconstrained;
 
pragma BUILTIN('TO_TIME', 0, 15, 1);
 
==== TO_TIMESTAMP ====
 
function TO_TIMESTAMP (RIGHT varchar2 character set any_cs)
 
  return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP', 0, 15, 3);
 
==== TO_TIME_TZ ====
 
  function TO_TIME_TZ (RIGHT varchar2 character set any_cs)
 
return  TIME_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIME_TZ', 0, 15, 5);
 
==== TO_TIMESTAMP_TZ ====
 
  function TO_TIMESTAMP_TZ (RIGHT varchar2 character set any_cs)
 
return  TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP_TZ', 0, 15, 7);
 
==== TO_YMINTERVAL ====
 
  function TO_YMINTERVAL (RIGHT varchar2 character set any_cs)
 
return  YMINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('TO_YMINTERVAL', 0, 15, 9);
 
==== TO_DSINTERVAL ====
 
  function TO_DSINTERVAL (RIGHT varchar2 character set any_cs)
 
return  DSINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('TO_DSINTERVAL', 0, 15, 11);
 
 
 
  -- with nls args
 
==== TO_TIME  ====
 
  function TO_TIME(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset,
 
  parms varchar2 character set left%charset)
 
return TIME_UNCONSTRAINED;
 
  function TO_TIME(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset)
 
return TIME_UNCONSTRAINED;
 
==== TO_TIMESTAMP ====
 
  function TO_TIMESTAMP(left varchar2 character set any_cs,
 
format varchar2 character set left%charset,
 
parms varchar2 character set left%charset)
 
return TIMESTAMP_UNCONSTRAINED;
 
  function TO_TIMESTAMP(left varchar2 character set any_cs,
 
format varchar2 character set left%charset)
 
return TIMESTAMP_UNCONSTRAINED;
 
==== TO_TIMESTAMP_TZ ====
 
  function TO_TIMESTAMP_TZ(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset,
 
  parms varchar2 character set left%charset)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
  function TO_TIMESTAMP_TZ(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
==== TO_TIME_TZ ====
 
  function TO_TIME_TZ(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset,
 
  parms varchar2 character set left%charset)
 
return TIME_TZ_UNCONSTRAINED;
 
 
 
  function TO_TIME_TZ(left varchar2 character set any_cs,
 
  format varchar2 character set left%charset)
 
return TIME_TZ_UNCONSTRAINED;
 
==== TO_DSINTERVAL ====
 
  function TO_DSINTERVAL(RIGHT varchar2 character set any_cs,
 
parms varchar2 character set RIGHT%charset)
 
return DSINTERVAL_UNCONSTRAINED;
 
 
 
==== NUMTOYMINTERVAL ====
 
  function NUMTOYMINTERVAL(numerator number,
 
  units varchar2 character set any_cs)
 
return YMINTERVAL_UNCONSTRAINED;
 
==== NUMTODSINTERVAL ====
 
  function NUMTODSINTERVAL(numerator number,
 
  units varchar2 character set any_cs)
 
return DSINTERVAL_UNCONSTRAINED;
 
 
 
==== '=' ====
 
  function '='  (LEFT UROWID, RIGHT UROWID) return BOOLEAN;
 
pragma BUILTIN('=',0, 11, 1);
 
pragma FIPSFLAG('=', 1450);
 
==== '!=' ====
 
  function '!=' (LEFT UROWID, RIGHT UROWID) return BOOLEAN;  -- also <> and ~=
 
pragma BUILTIN('!=',0, 11, 2);
 
pragma FIPSFLAG('!=', 1450);
 
==== '<' ====
 
  function '<'  (LEFT UROWID, RIGHT UROWID) return BOOLEAN;
 
pragma BUILTIN('<',0, 11, 3);
 
pragma FIPSFLAG('<', 1450);
 
==== '<=' ====
 
  function '<=' (LEFT UROWID, RIGHT UROWID) return BOOLEAN;
 
pragma BUILTIN('<=',0, 11, 4);
 
pragma FIPSFLAG('<=', 1450);
 
==== '>' ====
 
  function '>'  (LEFT UROWID, RIGHT UROWID) return BOOLEAN;
 
pragma BUILTIN('>',0, 11, 5);
 
pragma FIPSFLAG('>', 1450);
 
==== '>=' ====
 
  function '>=' (LEFT UROWID, RIGHT UROWID) return BOOLEAN;
 
pragma BUILTIN('>=',0, 11, 6);
 
pragma FIPSFLAG('>=', 1450);
 
 
 
==== 'IS NULL'====
 
  function 'IS NULL' (u UROWID) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 14, 0); -- PEMS_UROWID, PEMDNUL
 
pragma FIPSFLAG('IS NULL', 1450);
 
==== 'IS NOT NULL'====
 
  function 'IS NOT NULL' (u UROWID) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 14, 50); -- PEMS_UROWID, PEMDNUL
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== UROWID ====
 
  function UROWID " return UROWID;
 
pragma builtin('UROWID ', 1, 209, 240);  -- this had better never be called.
 
 
 
==== SYS_GUID ====
 
  -- New built-in function SYS_GUID, returns globally unique id
 
==== SYS_GUID  ====
 
  function SYS_GUID return RAW;
 
 
 
==== SYS_CONTEXT ====
 
  -- New built-in function SYS_CONTEXT
 
==== SYS_CONTEXT  ====
 
  function SYS_CONTEXT (namespace varchar2, attribute varchar2)
 
return varchar2;
 
 
 
==== TRIM ====
 
  function TRIM(v VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET v%CHARSET;
 
 
 
  --#### This is the end of 8.1.5 Standard
 
 
 
  -- SYS_CONTEXT now has an additional optional parameter
 
==== SYS_CONTEXT  ====
 
  function SYS_CONTEXT(namespace varchar2, attribute varchar2,
 
  newoptional varchar2)
 
return varchar2;
 
 
 
  -- CUBE and ROLLUP are not real functions; they are variants on the GROUP
 
  -- BY clause (GROUP BY CUBE (...) and GROUP BY ROLLUP (...)). They have
 
====  ====
 
  -- been added here as functions to avoid name capture issues.
 
  --
 
====  ====
 
  -- Note that both CUBE and ROLLUP look like true vararg functions with
 
  -- *no* repeating pattern of formals - hence they are special cased in
 
  -- the overloading code.
 
==== CUBE  ====
 
  function CUBE return NUMBER;
 
==== ROLLUP  ====
 
  function ROLLUP return NUMBER;
 
 
 
==== must ====
 
  -- The GROUPING function must be used in conjunction with CUBE and ROLLUP
 
  -- in the GROUP BY clause. The type of the parameter to GROUPING can be
 
  -- any type that can appear in a GROUP BY list.
 
==== GROUPING  ====
 
  function GROUPING(v VARCHAR2) return NUMBER;
 
==== GROUPING  ====
 
  function GROUPING(a "<ADT_1>") return NUMBER;
 
 
 
  -- This is for TRIM(x). No trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (v VARCHAR2 CHARACTER SET ANY_CS)
 
return VARCHAR2 CHARACTER SET v%CHARSET;
 
 
 
  -- This is for TRIM(LEADING/TRAILING FROM x). No trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (STR1 VARCHAR2 CHARACTER SET ANY_CS ,
 
TRFLAG PLS_INTEGER)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
 
 
  -- General TRIM. LEADING, TRAILING and BOTH options as 3rd argument.
 
  -- This one takes a trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (STR1  VARCHAR2 CHARACTER SET ANY_CS ,
 
TSET  VARCHAR2 CHARACTER SET STR1%CHARSET,
 
TRFLAG PLS_INTEGER)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
 
 
  --#### This is the end of the supported parts of 8.1.6 Standard
 
 
 
  --## Support for ANSI datetime data types is under development.
 
  --## The following operations, as well as the related types and
 
  --## operations defined above in the 8.1.5 section, are not yet
 
  --## available for use and are still subject to change.
 
 
 
  --- datetime equivalence
 
==== '='  ====
 
  function '='  (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT TIME_UNCONSTRAINED,
 
RIGHT TIME_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== '=' ====
 
  function '='  (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT TIMESTAMP_UNCONSTRAINED,
 
RIGHT TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== '=' ====
 
  function '='  (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT TIME_TZ_UNCONSTRAINED,
 
RIGHT TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== '=' ====
 
  function '='  (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT YMINTERVAL_UNCONSTRAINED,
 
RIGHT YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== '=' ====
 
  function '='  (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT DSINTERVAL_UNCONSTRAINED,
 
RIGHT DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== TO_TIME ====
 
  function TO_TIME (RIGHT TIME_TZ_UNCONSTRAINED)  return TIME_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIME', 0, 15, 13);
 
==== TO_TIME_TZ ====
 
  function TO_TIME_TZ (RIGHT TIME_UNCONSTRAINED)  return TIME_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIME_TZ', 0, 15, 14);
 
==== TO_TIMESTAMP ====
 
  function TO_TIMESTAMP (RIGHT TIMESTAMP_TZ_UNCONSTRAINED)
 
return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP', 0, 15, 15);
 
==== TO_TIMESTAMP_TZ ====
 
  function TO_TIMESTAMP_TZ (RIGHT TIMESTAMP_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP_TZ', 0, 15, 16);
 
 
 
==== '-' ====
 
  function '-'
 
  (LEFT TIME_UNCONSTRAINED, RIGHT TIME_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
==== '-' ====
 
  function '-'
 
  (LEFT TIMESTAMP_UNCONSTRAINED, RIGHT TIMESTAMP_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
==== '-' ====
 
  function '-'
 
  (LEFT TIME_TZ_UNCONSTRAINED, RIGHT TIME_TZ_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
==== '-' ====
 
  function '-'
 
  (LEFT TIMESTAMP_TZ_UNCONSTRAINED, RIGHT TIMESTAMP_TZ_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
 
 
  -- timezone functions
 
==== SYS_AT_TIME_ZONE  ====
 
  function SYS_AT_TIME_ZONE(t time_tz_unconstrained,
 
i varchar2) RETURN time_tz_unconstrained;
 
==== SYS_AT_TIME_ZONE ====
 
  function SYS_AT_TIME_ZONE(t timestamp_tz_unconstrained,
 
i varchar2) RETURN timestamp_tz_unconstrained;
 
==== systimestamp ====
 
  FUNCTION systimestamp RETURN timestamp_tz_unconstrained;
 
==== dbtimezone  ====
 
  FUNCTION dbtimezone RETURN varchar2;
 
==== sessiontimezone  ====
 
  FUNCTION sessiontimezone RETURN varchar2;
 
==== localtimestamp  ====
 
  FUNCTION localtimestamp RETURN timestamp_unconstrained;
 
==== localtime  ====
 
  FUNCTION localtime RETURN time_unconstrained;
 
 
 
==== TO_TIMESTAMP ====
 
  function TO_TIMESTAMP (RIGHT DATE)  return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP', 0, 15, 17);
 
 
 
==== '+'(LEFT ====
 
  function '+'(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
  RIGHT yminterval_unconstrained)
 
return TIMESTAMP_LTZ_UNCONSTRAINED;
 
==== '+'(LEFT ====
 
  function '+'(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
  RIGHT dsinterval_unconstrained)
 
return TIMESTAMP_LTZ_UNCONSTRAINED;
 
==== '+'(LEFT ====
 
  function '+'(LEFT yminterval_unconstrained,
 
  RIGHT TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_LTZ_UNCONSTRAINED ;
 
==== '+'(LEFT ====
 
  function '+'(LEFT dsinterval_unconstrained,
 
  RIGHT TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_LTZ_UNCONSTRAINED ;
 
 
 
==== '-'(LEFT ====
 
  function '-'(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
  RIGHT yminterval_unconstrained)
 
return TIMESTAMP_LTZ_UNCONSTRAINED ;
 
==== '-'(LEFT ====
 
  function '-'(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
  RIGHT dsinterval_unconstrained)
 
return TIMESTAMP_LTZ_UNCONSTRAINED ;
 
 
 
====  ====
 
  function  SYS$DSINTERVALSUBTRACT"(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED)
 
return dsinterval_unconstrained;
 
====  ====
 
  function  SYS$YMINTERVALSUBTRACT"(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED)
 
return yminterval_unconstrained;
 
 
 
==== '-'(LEFT ====
 
  function '-'(LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
  RIGHT TIMESTAMP_LTZ_UNCONSTRAINED)
 
return dsinterval_unconstrained;
 
 
 
==== '=' ====
 
  function '='  (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT TIMESTAMP_TZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== '=' ====
 
  function '='  (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== '!='  ====
 
  function '!=' (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<'  ====
 
  function '<'  (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== '<='  ====
 
  function '<=' (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>'  (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== '>  ====
 
  function '>=' (LEFT TIMESTAMP_LTZ_UNCONSTRAINED,
 
RIGHT TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
 
 
==== SYS_LITERALTOYMINTERVAL ====
 
  function SYS_LITERALTOYMINTERVAL(numerator varchar2, units varchar2)
 
return YMINTERVAL_UNCONSTRAINED;
 
==== SYS_LITERALTODSINTERVAL ====
 
  function SYS_LITERALTODSINTERVAL(numerator varchar2, units varchar2)
 
return DSINTERVAL_UNCONSTRAINED;
 
==== SYS_LITERALTOTIME ====
 
  function SYS_LITERALTOTIME(numerator varchar2)
 
return TIME_UNCONSTRAINED;
 
==== SYS_LITERALTOTZTIME ====
 
  function SYS_LITERALTOTZTIME(numerator varchar2)
 
return TIME_TZ_UNCONSTRAINED;
 
==== SYS_LITERALTOTIMESTAMP ====
 
  function SYS_LITERALTOTIMESTAMP(numerator varchar2)
 
return TIMESTAMP_UNCONSTRAINED;
 
==== SYS_LITERALTOTZTIMESTAMP ====
 
  function SYS_LITERALTOTZTIMESTAMP(numerator varchar2)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
==== SYS_LITERALTODATE ====
 
  function SYS_LITERALTODATE(numerator varchar2) return DATE;
 
 
 
 
 
  -- Explicit conversions between date and datetime
 
==== TO_TIMESTAMP  ====
 
  function TO_TIMESTAMP(ARG TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP', 0, 15, 24);
 
 
 
==== TO_TIMESTAMP_TZ ====
 
  function TO_TIMESTAMP_TZ(ARG DATE) return TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP_TZ', 0, 15, 27);
 
 
 
==== TO_TIMESTAMP_TZ ====
 
  function TO_TIMESTAMP_TZ(ARG TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('TO_TIMESTAMP_TZ', 0, 15, 26);
 
 
 
  -- IS [NOT] NULL / NVL for datetime
 
==== 'IS  ====
 
  function 'IS NULL' (b TIME_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b TIME_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 TIME_UNCONSTRAINED,
 
b2 TIME_UNCONSTRAINED) return TIME_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b TIME_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 TIME_TZ_UNCONSTRAINED, b2 TIME_TZ_UNCONSTRAINED)
 
return TIME_TZ_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b TIMESTAMP_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 TIMESTAMP_UNCONSTRAINED,
 
b2 TIMESTAMP_UNCONSTRAINED) return TIMESTAMP_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b TIMESTAMP_TZ_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 TIMESTAMP_TZ_UNCONSTRAINED, b2 TIMESTAMP_TZ_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b TIMESTAMP_LTZ_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 TIMESTAMP_LTZ_UNCONSTRAINED,
 
b2 TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_LTZ_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b YMINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 YMINTERVAL_UNCONSTRAINED, b2 YMINTERVAL_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED;
 
 
 
==== 'IS ====
 
  function 'IS NULL' (b DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT NULL' (b DSINTERVAL_UNCONSTRAINED) return BOOLEAN;
 
==== NVL  ====
 
  function NVL (b1 DSINTERVAL_UNCONSTRAINED, b2 DSINTERVAL_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
 
 
====  ====
 
  function  SYS$EXTRACT_FROM"
 
  (T TIME_UNCONSTRAINED,FIELD VARCHAR2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (T TIME_TZ_UNCONSTRAINED,FIELD varchar2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (T TIMESTAMP_UNCONSTRAINED,FIELD VARCHAR2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (T TIMESTAMP_TZ_UNCONSTRAINED,FIELD VARCHAR2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (T TIMESTAMP_LTZ_UNCONSTRAINED,FIELD varchar2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (T DATE,FIELD VARCHAR2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (I YMINTERVAL_UNCONSTRAINED,FIELD VARCHAR2) return NUMBER;
 
========
 
  function  SYS$EXTRACT_FROM"
 
  (I DSINTERVAL_UNCONSTRAINED,FIELD VARCHAR2) return NUMBER;
 
 
 
  -- ##########  8.2 LOB Built-in Functions  ######## --
 
 
 
  -- LENGTH --
 
==== LENGTH  ====
 
  function LENGTH(ch CLOB CHARACTER SET ANY_CS) return integer;
 
pragma FIPSFLAG('LENGTH', 1452);
 
 
 
==== LENGTHB ====
 
  function LENGTHB(ch CLOB CHARACTER SET ANY_CS) return integer;
 
pragma FIPSFLAG('LENGTHB', 1452);
 
 
 
==== LENGTH ====
 
  function LENGTH(bl BLOB) return integer;
 
pragma FIPSFLAG('LENGTH', 1452);
 
 
 
==== LENGTHB ====
 
  function LENGTHB(bl BLOB) return integer;
 
pragma FIPSFLAG('LENGTHB', 1452);
 
 
 
  -- SUBSTR --
 
==== SUBSTR  ====
 
  function SUBSTR(STR1 CLOB CHARACTER SET ANY_CS,
 
  POS INTEGER,
 
  LEN INTEGER := 18446744073709551615)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTR', 1452);
 
 
 
==== SUBSTRB ====
 
  function SUBSTRB(STR1 CLOB CHARACTER SET ANY_CS,
 
  POS INTEGER,
 
  LEN INTEGER := 18446744073709551615)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTRB', 1452);
 
 
 
  -- INSTR --
 
==== INSTR  ====
 
  function INSTR(STR1 CLOB CHARACTER SET ANY_CS,
 
STR2 CLOB CHARACTER SET STR1%CHARSET,
 
POS INTEGER := 1,
 
NTH INTEGER := 1) return INTEGER;
 
pragma FIPSFLAG('INSTR', 1452);
 
 
 
==== INSTRB ====
 
  function INSTRB(STR1 CLOB CHARACTER SET ANY_CS,
 
  STR2 CLOB CHARACTER SET STR1%CHARSET,
 
  POS INTEGER := 1,
 
  NTH INTEGER := 1) return INTEGER;
 
pragma FIPSFLAG('INSTRB', 1452);
 
 
 
  -- CONCAT --
 
==== '||'  ====
 
  function '||' (LEFT CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET LEFT%CHARSET;
 
pragma FIPSFLAG('||', 1454);
 
 
 
==== CONCAT ====
 
  function CONCAT(LEFT CLOB CHARACTER SET ANY_CS,
 
  RIGHT CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET LEFT%CHARSET;
 
pragma FIPSFLAG(CONCAT, 1454);
 
 
 
  -- UPPER --
 
==== UPPER  ====
 
  function UPPER(ch CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('UPPER', 1452);
 
 
 
  -- LOWER --
 
==== LOWER  ====
 
  function LOWER(ch CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('LOWER', 1452);
 
 
 
  -- LPAD --
 
==== LPAD  ====
 
  function LPAD(STR1 CLOB CHARACTER SET ANY_CS,
 
LEN integer,
 
PAD CLOB CHARACTER SET STR1%CHARSET)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LPAD', 1452);
 
 
 
==== LPAD ====
 
  function LPAD(STR1 CLOB CHARACTER SET ANY_CS,
 
LEN integer)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LPAD', 1452);
 
 
 
  -- RPAD --
 
==== RPAD  ====
 
  function RPAD(STR1 CLOB CHARACTER SET ANY_CS,
 
LEN integer,
 
PAD CLOB CHARACTER SET STR1%CHARSET)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RPAD', 1452);
 
 
 
==== RPAD ====
 
  function RPAD(STR1 CLOB CHARACTER SET ANY_CS,
 
LEN integer)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RPAD', 1452);
 
 
 
  -- LTRIM --
 
==== LTRIM  ====
 
  function LTRIM(STR1 CLOB CHARACTER SET ANY_CS,
 
TSET CLOB CHARACTER SET STR1%CHARSET)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LTRIM', 1452);
 
 
 
==== LTRIM ====
 
  function LTRIM(STR1 CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('LTRIM', 1452);
 
 
 
  -- RTRIM --
 
==== RTRIM  ====
 
  function RTRIM(STR1 CLOB CHARACTER SET ANY_CS,
 
TSET CLOB CHARACTER SET STR1%CHARSET)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RTRIM', 1452);
 
 
 
==== RTRIM ====
 
  function RTRIM(STR1 CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('RTRIM', 1452);
 
 
 
  -- TRIM --
 
==== TRIM  ====
 
  function TRIM(v CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET v%CHARSET;
 
 
 
  -- This is for TRIM(x). No trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (v CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET v%CHARSET;
 
 
 
  -- This is for TRIM(LEADING/TRAILING FROM x). No trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (STR1 CLOB CHARACTER SET ANY_CS ,
 
  TRFLAG PLS_INTEGER)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
 
 
  -- General TRIM. LEADING, TRAILING and BOTH options as 3rd argument.
 
  -- This one takes a trim set.
 
========
 
  function  SYS$STANDARD_TRIM" (STR1  CLOB CHARACTER SET ANY_CS ,
 
TSET  CLOB CHARACTER SET STR1%CHARSET,
 
TRFLAG PLS_INTEGER)
 
return CLOB CHARACTER SET STR1%CHARSET;
 
 
 
 
 
  -- LIKE --
 
==== 'LIKE  ====
 
  function 'LIKE' (str CLOB CHARACTER SET ANY_CS,
 
  pat CLOB CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE ====
 
  function 'NOT_LIKE' (str CLOB CHARACTER SET ANY_CS,
 
  pat CLOB CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
 
 
==== 'LIKE ====
 
  function 'LIKE' (str CLOB CHARACTER SET ANY_CS,
 
  pat CLOB CHARACTER SET str%CHARSET,
 
  esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE ====
 
  function 'NOT_LIKE' (str CLOB CHARACTER SET ANY_CS,
 
  pat CLOB CHARACTER SET str%CHARSET,
 
  esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
 
 
  -- NVL --
 
==== NVL  ====
 
  function NVL(s1 CLOB CHARACTER SET ANY_CS,
 
  s2 CLOB CHARACTER SET s1%CHARSET)
 
return CLOB CHARACTER SET s1%CHARSET;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
  -- REPLACE --
 
==== REPLACE  ====
 
  function REPLACE(SRCSTR CLOB CHARACTER SET ANY_CS,
 
  OLDSUB CLOB CHARACTER SET SRCSTR%CHARSET,
 
  NEWSUB CLOB CHARACTER SET SRCSTR%CHARSET := NULL)
 
return CLOB CHARACTER SET SRCSTR%CHARSET;
 
pragma FIPSFLAG('REPLACE', 1452);
 
 
 
  -- LOB RELATIONAL OPERATORS --
 
 
 
==== '=' ====
 
  Function '='  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '!='====
 
  Function '!=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>====
 
  Function '>'  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<'  ====
 
  Function '<'  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>====
 
  Function '>=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<='  ====
 
  Function '<=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
 
 
==== '=' ====
 
  Function '='  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '!='  ====
 
  Function '!=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>  ====
 
  Function '>'  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<'  ====
 
  Function '<'  (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>  ====
 
  Function '>=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<='  ====
 
  Function '<=' (LEFT  CLOB CHARACTER SET ANY_CS,
 
RIGHT VARCHAR2 CHARACTER SET ANY_CS) return BOOLEAN;
 
 
 
==== '=' ====
 
  Function '='  (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '!='  ====
 
  Function '!=' (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>  ====
 
  Function '>'  (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<'  ====
 
  Function '<'  (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '>  ====
 
  Function '>=' (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
==== '<='  ====
 
  Function '<=' (LEFT  VARCHAR2 CHARACTER SET ANY_CS,
 
RIGHT CLOB CHARACTER SET ANY_CS) return BOOLEAN;
 
 
 
  /* LOB-related conversion functions */
 
==== TO_CLOB  ====
 
  function TO_CLOB(RIGHT VARCHAR2 CHARACTER SET ANY_CS) return CLOB;
 
pragma BUILTIN('TO_CLOB', 0, 15, 29); -- OPC_CVT_CHR2CLB
 
==== TO_BLOB ====
 
  function TO_BLOB(RIGHT RAW) return BLOB;
 
pragma BUILTIN('TO_BLOB', 0, 15, 30); -- OPC_CVT_RAW2BLB
 
==== TO_RAW ====
 
  function TO_RAW(RIGHT BLOB) return RAW;
 
pragma BUILTIN('TO_RAW', 0, 15, 32); -- OPC_CVT_BLB2RAW
 
 
 
  -- ####### end of 8.2 LOB Built-in Functions  ######## --
 
 
 
==== NULLIF ====
 
  function NULLIF(v1 VARCHAR2, v2 VARCHAR2) return VARCHAR2;
 
==== NULLIF  ====
 
  function NULLIF(v1 BOOLEAN, v2 BOOLEAN) return BOOLEAN;
 
==== NULLIF  ====
 
  function NULLIF(a1 "<ADT_1>", a2 "<ADT_1>") return "<ADT_1>";
 
 
 
==== COALESCE ====
 
  function COALESCE return VARCHAR2;
 
 
 
  /* Daylight Saving Time Functions */
 
==== tz_offset  ====
 
  FUNCTION tz_offset(region VARCHAR2)  RETURN VARCHAR2;
 
==== from_tz  ====
 
  FUNCTION from_tz(t TIMESTAMP_UNCONSTRAINED,timezone VARCHAR2)
 
RETURN timestamp_tz_unconstrained;
 
 
 
====  ====
 
  function  SYS$EXTRACT_STRING_FROM"
 
  (T TIME_TZ_UNCONSTRAINED,FIELD varchar2) return VARCHAR2;
 
========
 
  function  SYS$EXTRACT_STRING_FROM"
 
  (T TIMESTAMP_TZ_UNCONSTRAINED,FIELD VARCHAR2) return VARCHAR2;
 
========
 
  function  SYS$EXTRACT_STRING_FROM"
 
  (T TIMESTAMP_LTZ_UNCONSTRAINED,FIELD varchar2) return VARCHAR2;
 
 
 
==== INSTR2 ====
 
  function INSTR2(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
 
  POS PLS_INTEGER := 1,
 
  NTH POSITIVE := 1) return PLS_INTEGER;
 
pragma FIPSFLAG('INSTR2', 1452);
 
 
 
==== INSTR4 ====
 
  function INSTR4(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
 
  POS PLS_INTEGER := 1,
 
  NTH POSITIVE := 1) return PLS_INTEGER;
 
pragma FIPSFLAG('INSTR4', 1452);
 
 
 
==== INSTRC ====
 
  function INSTRC(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  STR2 VARCHAR2 CHARACTER SET STR1%CHARSET,
 
  POS PLS_INTEGER := 1,
 
  NTH POSITIVE := 1) return PLS_INTEGER;
 
pragma FIPSFLAG('INSTRC', 1452);
 
 
 
==== LENGTH2 ====
 
  function LENGTH2(ch VARCHAR2 CHARACTER SET ANY_CS) return natural;
 
pragma FIPSFLAG('LENGTH2', 1452);
 
 
 
==== LENGTH4 ====
 
  function LENGTH4(ch VARCHAR2 CHARACTER SET ANY_CS) return natural;
 
pragma FIPSFLAG('LENGTH4', 1452);
 
 
 
==== LENGTHC ====
 
  function LENGTHC(ch VARCHAR2 CHARACTER SET ANY_CS) return natural;
 
pragma FIPSFLAG('LENGTHC', 1452);
 
 
 
==== 'LIKE2 ====
 
  function 'LIKE2' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE2 ====
 
  function 'NOT_LIKE2' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'LIKE2 ====
 
  function 'LIKE2' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE2 ====
 
  function 'NOT_LIKE2' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
 
 
==== 'LIKE4 ====
 
  function 'LIKE4' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE4 ====
 
  function 'NOT_LIKE4' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'LIKE4 ====
 
  function 'LIKE4' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKE4 ====
 
  function 'NOT_LIKE4' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
 
 
==== 'LIKEC ====
 
  function 'LIKEC' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKEC ====
 
  function 'NOT_LIKEC' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'LIKEC ====
 
  function 'LIKEC' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
==== 'NOT_LIKEC ====
 
  function 'NOT_LIKEC' (str VARCHAR2 CHARACTER SET ANY_CS,
 
pat VARCHAR2 CHARACTER SET str%CHARSET,
 
esc VARCHAR2 CHARACTER SET str%CHARSET)
 
return BOOLEAN;
 
 
 
==== SUBSTR2 ====
 
  function SUBSTR2(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  POS PLS_INTEGER,
 
  LEN PLS_INTEGER := 2147483647)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTR2', 1452);
 
 
 
==== SUBSTR4 ====
 
  function SUBSTR4(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  POS PLS_INTEGER,
 
  LEN PLS_INTEGER := 2147483647)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTR4', 1452);
 
 
 
==== SUBSTRC ====
 
  function SUBSTRC(STR1 VARCHAR2 CHARACTER SET ANY_CS,
 
  POS PLS_INTEGER,
 
  LEN PLS_INTEGER := 2147483647)
 
return VARCHAR2 CHARACTER SET STR1%CHARSET;
 
pragma FIPSFLAG('SUBSTRC', 1452);
 
 
 
  /**** char <--> nchar conversion functions in Unicode project ********/
 
 
 
==== TO_NCHAR ====
 
  function TO_NCHAR(RIGHT NVARCHAR2) return NVARCHAR2;
 
pragma BUILTIN('TO_NCHAR',14, 0, 2);
 
 
 
==== TO_NCLOB ====
 
  function TO_NCLOB(cl CLOB CHARACTER SET ANY_CS) return NCLOB;
 
==== TO_CLOB  ====
 
  function TO_CLOB(cl CLOB CHARACTER SET ANY_CS) return CLOB;
 
 
 
==== TO_NCLOB ====
 
  function TO_NCLOB(RIGHT VARCHAR2 CHARACTER SET ANY_CS)
 
return NCLOB;
 
pragma BUILTIN('TO_NCLOB', 0, 15, 29); -- OPC_CVT_CHR2CLB
 
  /* convert to either CLOB or NCLOB respectively if parm is char or nchar */
 
==== TO_ANYLOB  ====
 
  function TO_ANYLOB(RIGHT VARCHAR2 CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET RIGHT%CHARSET;
 
pragma BUILTIN('TO_ANYLOB', 0, 15, 29); -- OPC_CVT_CHR2CLB
 
 
 
  /* Followings are the same builtin op codes as without N prefix functions,
 
  * implementation relys on impilcit conversion MCODEs
 
  */
 
==== TO_NCHAR====
 
  function TO_NCHAR (LEFT DATE, FORMAT NVARCHAR2) return NVARCHAR2;
 
pragma BUILTIN('TO_NCHAR',41, 12, 19); -- PEMS_DATE, DAT_CNV_CHR1
 
pragma FIPSFLAG('TO_NCHAR', 1450);
 
==== TO_NCHAR ====
 
  function TO_NCHAR (LEFT NUMBER, FORMAT NVARCHAR2) return NVARCHAR2;
 
pragma BUILTIN('TO_NCHAR',41, 2, 14); -- PEMS_NUMBER, NUM_CNV_CHR
 
 
 
==== NHEXTORAW ====
 
  function NHEXTORAW (c NVARCHAR2) return RAW;
 
pragma builtin('NHEXTORAW', 1, 23, 1);
 
==== RAWTONHEX ====
 
  function RAWTONHEX (r RAW) return NVARCHAR2;
 
pragma builtin('RAWTONHEX', 1, 23, 2);
 
==== NCHARTOROWID ====
 
  function NCHARTOROWID (str NVARCHAR2) return ROWID;
 
pragma builtin('NCHARTOROWID', 1, 0, 1);
 
==== ROWIDTONCHAR ====
 
  function ROWIDTONCHAR (str ROWID) return NVARCHAR2;
 
pragma builtin('ROWIDTONCHAR', 1, 0, 1);
 
 
 
==== NCHR ====
 
  function NCHR(n integer) return NVARCHAR2;
 
 
 
  /* implemented by icd calls as the same as TO_CHAR */
 
==== TO_NCHAR  ====
 
  function TO_NCHAR(left date, format nvarchar2, parms nvarchar2)
 
return nvarchar2;
 
==== TO_NCHAR ====
 
  function TO_NCHAR(left number, format nvarchar2, parms nvarchar2)
 
return nvarchar2;
 
 
 
  /* implemented as a icd call, return TRUE if nchar, otherwise FALSE */
 
==== ISNCHAR  ====
 
  function ISNCHAR(c VARCHAR2 character set any_cs) return boolean;
 
 
 
  /************ end of char <--> nchar conversion functions ************/
 
 
 
  /* Create overloads for all standard functions that work with <ADT_1> for
 
<OPAQUE_1> */
 
==== '='  ====
 
  function '='  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('=', 1, 1, 1);
 
pragma FIPSFLAG('=', 1450);
 
==== '!=' ====
 
  function '!=' (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('!=', 1, 1, 1);
 
pragma FIPSFLAG('!=', 1450);
 
==== '<' ====
 
  function '<'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('<', 1, 1, 1);
 
pragma FIPSFLAG('<', 1450);
 
==== '<=' ====
 
  function '<=' (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('<=', 1, 1, 1);
 
pragma FIPSFLAG('<=', 1450);
 
==== '> ====
 
  function '>'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('>', 1, 1, 1);
 
pragma FIPSFLAG('>', 1450);
 
==== '> ====
 
  function '>=' (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('>=', 1, 1, 1);
 
pragma FIPSFLAG('>=', 1450);
 
 
 
==== '=ANY' ====
 
  function '=ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
 
 
==== '!=ANY  ====
 
  function '!=ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<ANY  ====
 
  function '<ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<=ANY  ====
 
  function '<=ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>=ANY'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '=ALL  ====
 
  function '=ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '!=ALL  ====
 
  function '!=ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<ALL  ====
 
  function '<ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<=ALL  ====
 
  function '<=ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>=ALL'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '=SOME  ====
 
  function '=SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '!=SOME  ====
 
  function '!=SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<SOME  ====
 
  function '<SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '<=SOME  ====
 
  function '<=SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
==== '>  ====
 
  function '>=SOME'  (LEFT "<OPAQUE_1>", RIGHT "<OPAQUE_1>") return BOOLEAN;
 
 
 
  -- Outer Join
 
==== '(+  ====
 
  function '(+)'  ( colname "<OPAQUE_1>") return "<OPAQUE_1>";
 
pragma FIPSFLAG('(+)', 1450);
 
 
 
  --  GREATEST and LEAST are not yet supported for ADTs in 8.0.2.
 
==== GREATEST  ====
 
  --  function GREATEST (pattern "<OPAQUE_1>") return "<OPAQUE_1>";
 
  --pragma BUILTIN('GREATEST', 1, 1, 1);
 
 
 
==== LEAST ====
 
  --  function LEAST (pattern "<OPAQUE_1>") return "<OPAQUE_1>";
 
  --pragma BUILTIN('LEAST', 1, 1, 1);
 
 
 
==== DECODE ====
 
  function DECODE (expr "<OPAQUE_1>", pat "<OPAQUE_1>", res "<OPAQUE_1>")
 
return "<OPAQUE_1>";
 
pragma BUILTIN('DECODE', 1, 1, 1);
 
 
 
==== 'IS ====
 
  function 'IS NULL' (B "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 3, 0);
 
pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== 'IS ====
 
  function 'IS NOT NULL' (B "<OPAQUE_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 3, 50);
 
pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== NVL ====
 
  function NVL (B1 "<OPAQUE_1>", B2 "<OPAQUE_1>") return "<OPAQUE_1>";
 
pragma FIPSFLAG('NVL', 1450);
 
 
 
  --  REFs to opaques are not supported yet.
 
==== VALUE  ====
 
  --  function VALUE (item "<ADT_WITH_OID>") return "<OPAQUE_1>";
 
  --pragma BUILTIN('VALUE', 1, 1, 1);
 
  --pragma FIPSFLAG('VALUE', 1450);
 
 
 
==== REF ====
 
  --  function REF (item "<ADT_WITH_OID>") return REF "<OPAQUE_1>";
 
  --pragma BUILTIN('REF', 1, 1, 1);
 
  --pragma FIPSFLAG('REF', 1450);
 
 
 
==== DEREF ====
 
  --  function DEREF (r REF "<OPAQUE_1>") return "<OPAQUE_1>";
 
  --pragma BUILTIN('DEREF', 1, 1, 1);
 
  --pragma FIPSFLAG('DEREF', 1450);
 
 
 
  -- overloadings for REF OPAQUE
 
 
 
==== 'IS ====
 
  --  function 'IS NULL' (B REF "<OPAQUE_1>") return BOOLEAN;
 
  --pragma BUILTIN('IS NULL', 0, 3, 0);
 
  --pragma FIPSFLAG('IS NULL', 1450);
 
 
 
==== 'IS ====
 
  --  function 'IS NOT NULL' (B REF "<OPAQUE_1>") return BOOLEAN;
 
  --pragma FIPSFLAG('IS NOT NULL', 1450);
 
 
 
==== 'IS ====
 
  --  function 'IS DANGLING' (B REF "<OPAQUE_1>") return BOOLEAN;
 
  --pragma BUILTIN('IS DANGLING', 1, 1, 1);
 
  --pragma FIPSFLAG('IS DANGLING', 1450);
 
 
 
==== 'IS ====
 
  --  function 'IS NOT DANGLING' (B REF "<OPAQUE_1>") return BOOLEAN;
 
  --pragma BUILTIN('IS NOT DANGLING', 1, 1, 1);
 
  --pragma FIPSFLAG('IS NOT DANGLING', 1450);
 
 
 
==== NVL ====
 
  --  function NVL (B1 REF "<OPAQUE_1>", B2 REF "<OPAQUE_1>")
 
  --return REF "<OPAQUE_1>";
 
  --pragma FIPSFLAG('NVL', 1450);
 
 
 
==== '=' ====
 
  --  function '='  (LEFT REF "<OPAQUE_1>", RIGHT REF "<OPAQUE_1>")
 
  --return BOOLEAN;
 
  --pragma BUILTIN('=', 0, 3, 1);
 
  --pragma FIPSFLAG('=', 1450);
 
 
 
==== '!=' ====
 
  --  function '!=' (LEFT REF "<OPAQUE_1>", RIGHT REF "<OPAQUE_1>")
 
  --return BOOLEAN;
 
  --pragma BUILTIN('!=', 0, 3, 2);
 
  --pragma FIPSFLAG('!=', 1450);
 
 
 
==== GROUPING ====
 
  function GROUPING(a "<OPAQUE_1>") return NUMBER;
 
==== NULLIF  ====
 
  function NULLIF(a1 "<OPAQUE_1>", a2 "<OPAQUE_1>") RETURN "<OPAQUE_1>";
 
 
 
==== GREATEST ====
 
  function GREATEST (pattern TIME_UNCONSTRAINED) return TIME_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern TIME_TZ_UNCONSTRAINED)
 
return TIME_TZ_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern TIMESTAMP_UNCONSTRAINED)
 
return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern TIMESTAMP_TZ_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_LTZ_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern YMINTERVAL_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== GREATEST ====
 
  function GREATEST (pattern DSINTERVAL_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2 -- Pj
 
 
 
==== LEAST ====
 
  function LEAST (pattern TIME_UNCONSTRAINED) return TIME_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern TIME_TZ_UNCONSTRAINED) return TIME_TZ_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern TIMESTAMP_UNCONSTRAINED)
 
return TIMESTAMP_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern TIMESTAMP_TZ_UNCONSTRAINED)
 
return TIMESTAMP_TZ_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern TIMESTAMP_LTZ_UNCONSTRAINED)
 
return TIMESTAMP_LTZ_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern YMINTERVAL_UNCONSTRAINED)
 
return YMINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
==== LEAST ====
 
  function LEAST (pattern DSINTERVAL_UNCONSTRAINED)
 
return DSINTERVAL_UNCONSTRAINED;
 
pragma BUILTIN('LEAST',12,240,240);-- This is special cased in PH2 -- Pj
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR(left TIME_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left TIME_UNCONSTRAINED, format VARCHAR2) return VARCHAR2;
 
==== TO_CHAR  ====
 
  function TO_CHAR(left TIME_TZ_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left TIME_TZ_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left TIMESTAMP_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left TIMESTAMP_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left TIMESTAMP_TZ_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left TIMESTAMP_TZ_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left TIMESTAMP_LTZ_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left TIMESTAMP_LTZ_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left YMINTERVAL_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left YMINTERVAL_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left DSINTERVAL_UNCONSTRAINED, format VARCHAR2,
 
  parms VARCHAR2) return VARCHAR2;
 
==== TO_CHAR====
 
  function TO_CHAR(left DSINTERVAL_UNCONSTRAINED, format VARCHAR2)
 
return VARCHAR2;
 
 
 
  -- CONVERT FOR LOB --
 
==== CONVERT  ====
 
  function CONVERT(SRCSTR CLOB CHARACTER SET ANY_CS,
 
  DSTCSN VARCHAR2)
 
return CLOB CHARACTER SET SRCSTR%CHARSET;
 
==== CONVERT ====
 
  function CONVERT(SRCSTR CLOB CHARACTER SET ANY_CS,
 
  DSTCSN VARCHAR2,
 
  SRCCSN VARCHAR2)
 
return CLOB CHARACTER SET SRCSTR%CHARSET;
 
 
 
  -- NLS_UPPER/NLS_LOWER FOR LOB --
 
==== NLS_UPPER  ====
 
  function NLS_UPPER(ch CLOB CHARACTER SET ANY_CS,
 
parms VARCHAR2 CHARACTER SET ch%CHARSET)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_UPPER', 1452);
 
==== NLS_UPPER ====
 
  function NLS_UPPER(ch CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_UPPER', 1452);
 
==== NLS_LOWER ====
 
  function NLS_LOWER(ch CLOB CHARACTER SET ANY_CS,
 
parms VARCHAR2 CHARACTER SET ch%CHARSET)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_LOWER', 1452);
 
==== NLS_LOWER ====
 
  function NLS_LOWER(ch CLOB CHARACTER SET ANY_CS)
 
return CLOB CHARACTER SET ch%CHARSET;
 
pragma FIPSFLAG('NLS_LOWER', 1452);
 
 
 
==== COMPOSE ====
 
  function COMPOSE(ch VARCHAR2 CHARACTER SET ANY_CS)
 
return varchar2 character set ch%charset;
 
pragma FIPSFLAG('COMPOSE', 1452);
 
==== DECOMPOSE ====
 
  function DECOMPOSE(ch VARCHAR2 CHARACTER SET ANY_CS,
 
canmode in VARCHAR2 DEFAULT 'CANONICAL')
 
return varchar2 character set ch%charset;
 
pragma FIPSFLAG('DECOMPOSE', 1452);
 
==== SYS_EXTRACT_UTC ====
 
  FUNCTION SYS_EXTRACT_UTC(t timestamp_tz_unconstrained)
 
return TIMESTAMP_UNCONSTRAINED;
 
 
 
  -- Begin REGEXP Support (10iR1) --
 
 
 
  -- REGEXP_LIKE --
 
==== REGEXP_LIKE  ====
 
  function REGEXP_LIKE (srcstr  VARCHAR2 CHARACTER SET ANY_CS,
 
pattern  VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
modifier VARCHAR2 DEFAULT NULL)
 
return BOOLEAN;
 
pragma FIPSFLAG('REGEXP_LIKE', 1452);
 
 
 
==== REGEXP_LIKE ====
 
  function REGEXP_LIKE (srcstr  CLOB CHARACTER SET ANY_CS,
 
pattern  VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
modifier VARCHAR2 DEFAULT NULL)
 
return BOOLEAN;
 
pragma FIPSFLAG('REGEXP_LIKE', 1452);
 
 
 
  -- REGEXP_INSTR --
 
==== REGEXP_INSTR  ====
 
  function REGEXP_INSTR(srcstr  VARCHAR2 CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionPLS_INTEGER := 1,
 
occurrence  PLS_INTEGER := 1,
 
returnparam PLS_INTEGER := 0,
 
modifierVARCHAR2 DEFAULT NULL,
 
subexpression PLS_INTEGER := 0)
 
return PLS_INTEGER;
 
pragma FIPSFLAG('REGEXP_INSTR', 1452);
 
 
 
==== REGEXP_INSTR ====
 
  function REGEXP_INSTR(srcstr  CLOB CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionINTEGER := 1,
 
occurrence  INTEGER := 1,
 
returnparam PLS_INTEGER := 0,
 
modifierVARCHAR2 DEFAULT NULL,
 
subexpression PLS_INTEGER := 0)
 
return INTEGER;
 
pragma FIPSFLAG('REGEXP_INSTR', 1452);
 
 
 
 
 
  -- REGEXP_SUBSTR --
 
==== REGEXP_SUBSTR  ====
 
  function REGEXP_SUBSTR(srcstr  VARCHAR2 CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionPLS_INTEGER := 1,
 
occurrence  PLS_INTEGER := 1,
 
modifierVARCHAR2 DEFAULT NULL,
 
subexpression PLS_INTEGER := 0)
 
return VARCHAR2 CHARACTER SET srcstr%CHARSET;
 
pragma FIPSFLAG('REGEXP_SUBSTR', 1452);
 
 
 
==== REGEXP_SUBSTR ====
 
  function REGEXP_SUBSTR(srcstr  CLOB CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionINTEGER := 1,
 
occurrence  INTEGER := 1,
 
modifierVARCHAR2 DEFAULT NULL,
 
subexpression PLS_INTEGER := 0)
 
return CLOB CHARACTER SET srcstr%CHARSET;
 
pragma FIPSFLAG('REGEXP_SUBSTR', 1452);
 
 
 
  -- REGEXP_REPLACE --
 
==== REGEXP_REPLACE  ====
 
  function REGEXP_REPLACE(srcstr  VARCHAR2 CHARACTER SET ANY_CS,
 
  pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
  replacestr  VARCHAR2 CHARACTER SET srcstr%CHARSET
 
DEFAULT NULL,
 
  positionPLS_INTEGER := 1,
 
  occurrence  PLS_INTEGER := 0,
 
  modifierVARCHAR2 DEFAULT NULL)
 
return VARCHAR2 CHARACTER SET srcstr%CHARSET;
 
pragma FIPSFLAG('REGEXP_REPLACE', 1452);
 
 
 
==== REGEXP_REPLACE ====
 
  function REGEXP_REPLACE(srcstr  CLOB CHARACTER SET ANY_CS,
 
  pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
  replacestr  CLOB CHARACTER SET srcstr%CHARSET
 
DEFAULT NULL,
 
  positionINTEGER := 1,
 
  occurrence  INTEGER := 0,
 
  modifierVARCHAR2 DEFAULT NULL)
 
return CLOB CHARACTER SET srcstr%CHARSET;
 
pragma FIPSFLAG('REGEXP_REPLACE', 1452);
 
 
 
==== REGEXP_REPLACE ====
 
  function REGEXP_REPLACE(srcstr  CLOB CHARACTER SET ANY_CS,
 
  pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
  replacestr  VARCHAR2 CHARACTER SET srcstr%CHARSET
 
DEFAULT NULL,
 
  positionINTEGER := 1,
 
  occurrence  INTEGER := 0,
 
  modifierVARCHAR2 DEFAULT NULL)
 
return CLOB CHARACTER SET srcstr%CHARSET;
 
pragma FIPSFLAG('REGEXP_REPLACE', 1452);
 
 
 
  -- End REGEXP Support --
 
 
 
  -- binary_float and binary_double functions and operators.
 
==== TO_BINARY_FLOAT  ====
 
  function TO_BINARY_FLOAT (RIGHT BINARY_FLOAT) RETURN BINARY_FLOAT;
 
pragma BUILTIN('TO_BINARY_FLOAT',14, 0, 1); -- PEMS_QUICK
 
==== TO_BINARY_FLOAT ====
 
  function TO_BINARY_FLOAT (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
FORMAT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
RETURN BINARY_FLOAT;
 
==== TO_BINARY_FLOAT ====
 
  function TO_BINARY_FLOAT (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
FORMAT VARCHAR2 CHARACTER SET LEFT%CHARSET,
 
PARMS VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
RETURN BINARY_FLOAT;
 
 
 
==== TO_BINARY_DOUBLE ====
 
  function TO_BINARY_DOUBLE (RIGHT BINARY_DOUBLE) RETURN BINARY_DOUBLE;
 
pragma BUILTIN('TO_BINARY_DOUBLE',14, 0, 1); -- PEMS_QUICK
 
==== TO_BINARY_DOUBLE ====
 
  function TO_BINARY_DOUBLE (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
FORMAT VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
RETURN BINARY_DOUBLE;
 
==== TO_BINARY_DOUBLE ====
 
  function TO_BINARY_DOUBLE (LEFT VARCHAR2 CHARACTER SET ANY_CS,
 
FORMAT VARCHAR2 CHARACTER SET LEFT%CHARSET,
 
PARMS VARCHAR2 CHARACTER SET LEFT%CHARSET)
 
RETURN BINARY_DOUBLE;
 
 
 
==== 'IS NAN====
 
  function 'IS NAN' (N NUMBER) RETURN BOOLEAN;
 
==== 'IS NAN  ====
 
  function 'IS NAN' (F BINARY_FLOAT) RETURN BOOLEAN;
 
==== 'IS NAN  ====
 
  function 'IS NAN' (D BINARY_DOUBLE) RETURN BOOLEAN;
 
==== 'IS INFINITE  ====
 
  function 'IS INFINITE' (N NUMBER) RETURN BOOLEAN;
 
==== 'IS INFINITE  ====
 
  function 'IS INFINITE' (F BINARY_FLOAT) RETURN BOOLEAN;
 
==== 'IS INFINITE  ====
 
  function 'IS INFINITE' (D BINARY_DOUBLE) RETURN BOOLEAN;
 
==== 'IS NOT NAN  ====
 
  function 'IS NOT NAN' (N NUMBER) RETURN BOOLEAN;
 
==== 'IS IS NOT NAN  ====
 
  function 'IS NOT NAN' (F BINARY_FLOAT) RETURN BOOLEAN;
 
==== 'IS IS NOT NAN  ====
 
  function 'IS NOT NAN' (D BINARY_DOUBLE) RETURN BOOLEAN;
 
==== 'IS NOT INFINITE  ====
 
  function 'IS NOT INFINITE' (N NUMBER) RETURN BOOLEAN;
 
==== 'IS NOT INFINITE  ====
 
  function 'IS NOT INFINITE' (F BINARY_FLOAT) RETURN BOOLEAN;
 
==== 'IS NOT INFINITE  ====
 
  function 'IS NOT INFINITE' (D BINARY_DOUBLE) RETURN BOOLEAN;
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR (left binary_float, format varchar2)
 
return VARCHAR2;
 
==== TO_CHAR ====
 
  function TO_CHAR (left binary_double, format varchar2)
 
return VARCHAR2;
 
 
 
==== TO_CHAR ====
 
  function TO_CHAR(left binary_float, format varchar2, parms varchar2)
 
return varchar2;
 
==== TO_CHAR ====
 
  function TO_CHAR(left binary_double, format varchar2, parms varchar2)
 
return varchar2;
 
 
 
==== TO_NCHAR ====
 
  function TO_NCHAR(left binary_float, format nvarchar2) return NVARCHAR2;
 
==== TO_NCHAR  ====
 
  function TO_NCHAR(left binary_double, format nvarchar2) return NVARCHAR2;
 
 
 
==== TO_NCHAR ====
 
  function TO_NCHAR(left binary_float, format nvarchar2, parms nvarchar2)
 
return nvarchar2;
 
==== TO_NCHAR ====
 
  function TO_NCHAR(left binary_double, format nvarchar2, parms nvarchar2)
 
return nvarchar2;
 
 
 
==== 'REMAINDER ====
 
  function 'REMAINDER'(n1 NUMBER, n2 NUMBER) return NUMBER;
 
pragma FIPSFLAG('REMAINDER', 1452);
 
==== REMAINDER ====
 
  function REMAINDER(n1 NUMBER, n2 NUMBER) return NUMBER;
 
pragma FIPSFLAG(REMAINDER, 1452);
 
==== 'REMAINDER ====
 
  function 'REMAINDER'(f1 BINARY_FLOAT, f2 BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('REMAINDER', 1452);
 
==== REMAINDER ====
 
  function REMAINDER(f1 BINARY_FLOAT, f2 BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG(REMAINDER, 1452);
 
==== 'REMAINDER ====
 
  function 'REMAINDER'(d1 BINARY_DOUBLE, d2 BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('REMAINDER', 1452);
 
==== REMAINDER ====
 
  function REMAINDER(d1 BINARY_DOUBLE, d2 BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG(REMAINDER, 1452);
 
 
 
==== '=' ====
 
  function '='  (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('=',2, 2, 15);
 
==== '!=' ====
 
  function '!=' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('!=',5, 2, 16);
 
pragma FIPSFLAG('!=', 1452);
 
==== '<' ====
 
  function '<'  (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('<',4, 2, 17);
 
==== '<=' ====
 
  function '<=' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('<=',6, 2, 18);
 
==== '>' ====
 
  function '>'  (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('>',1, 2, 19);
 
==== '>=' ====
 
  function '>=' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('>=',3, 2, 20);
 
 
 
==== 'IS ====
 
  function 'IS NULL' (n BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0);
 
==== 'IS ====
 
  function 'IS NOT NULL' (n BINARY_FLOAT) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50);
 
 
 
==== NVL ====
 
  function NVL(f1 BINARY_FLOAT, f2 BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
==== '+' ====
 
  function '+' (RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('+',14, 0, 1);
 
==== '-' ====
 
  function '-' (RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('-',15, 2, 23);
 
==== ABS ====
 
  function ABS(F BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('ABS', 1452);
 
 
 
==== '+' ====
 
  function '+' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('+',14, 2, 24);
 
==== '-' ====
 
  function '-' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('-',15, 2, 25);
 
==== '*' ====
 
  function '*' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('*',17, 2, 26);
 
==== '/' ====
 
  function '/' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('/',18, 2, 27);
 
 
 
==== 'REM ====
 
  function 'REM' (LEFT BINARY_FLOAT, RIGHT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('REM', 1452);
 
==== 'MOD ====
 
  function 'MOD'(F1 BINARY_FLOAT, F2 BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('MOD', 1452);
 
 
 
==== FLOOR ====
 
  function FLOOR(F BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('FLOOR', 1452);
 
==== CEIL ====
 
  function CEIL(F BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('CEIL', 1452);
 
==== SIGN ====
 
  function SIGN(f BINARY_FLOAT) return SIGNTYPE;
 
pragma FIPSFLAG('SIGN', 1452);
 
==== SQRT ====
 
  function SQRT(f BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('SQRT', 1452);
 
 
 
==== TRUNC ====
 
  function TRUNC (F BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('TRUNC', 1452);
 
 
 
==== ROUND ====
 
  function ROUND (LEFT BINARY_FLOAT) return BINARY_FLOAT;
 
pragma FIPSFLAG('ROUND', 1452);
 
 
 
==== '=' ====
 
  function '='  (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('=',2, 2, 28);
 
==== '!=' ====
 
  function '!=' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
-- also <> and ~=
 
pragma BUILTIN('!=',5, 2, 29);
 
pragma FIPSFLAG('!=', 1452);
 
==== '<' ====
 
  function '<'  (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('<',4, 2, 30);
 
==== '<=' ====
 
  function '<=' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('<=',6, 2, 31);
 
==== '>' ====
 
  function '>'  (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('>',1, 2, 32);
 
==== '>=' ====
 
  function '>=' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('>=',3, 2, 33);
 
 
 
==== 'IS ====
 
  function 'IS NULL' (n BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0);
 
==== 'IS ====
 
  function 'IS NOT NULL' (n BINARY_DOUBLE) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50);
 
 
 
==== NVL ====
 
  function NVL(d1 BINARY_DOUBLE, d2 BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
==== '+' ====
 
  function '+' (RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('+',14, 0, 1);
 
==== '-' ====
 
  function '-' (RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('-',15, 2, 36);
 
==== ABS ====
 
  function ABS(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ABS', 1452);
 
 
 
==== ACOS ====
 
  function ACOS(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ACOS', 1452);
 
 
 
==== ASIN ====
 
  function ASIN(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ASIN', 1452);
 
 
 
==== ATAN ====
 
  function ATAN(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ATAN', 1452);
 
 
 
==== ATAN2 ====
 
  function ATAN2(x BINARY_DOUBLE, y BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ATAN2', 1452);
 
 
 
==== '+' ====
 
  function '+' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('+',14, 2, 37);
 
==== '-' ====
 
  function '-' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('-',15, 2, 38);
 
==== '*' ====
 
  function '*' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('*',17, 2, 39);
 
==== '/' ====
 
  function '/' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('/',18, 2, 40);
 
 
 
==== 'REM ====
 
  function 'REM' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE)
 
return BINARY_DOUBLE;
 
pragma FIPSFLAG('REM', 1452);
 
==== 'MOD ====
 
  function 'MOD'(D1 BINARY_DOUBLE, D2 BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('MOD', 1452);
 
 
 
==== '**' ====
 
  function '**' (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE)
 
return BINARY_DOUBLE;
 
pragma FIPSFLAG('**', 1452);
 
 
 
==== FLOOR ====
 
  function FLOOR(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('FLOOR', 1452);
 
==== CEIL ====
 
  function CEIL(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('CEIL', 1452);
 
==== SQRT ====
 
  function SQRT(d BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('SQRT', 1452);
 
==== SIGN ====
 
  function SIGN(d BINARY_DOUBLE) return SIGNTYPE;
 
  pragma FIPSFLAG('SIGN', 1452);
 
 
 
==== COS ====
 
  function COS(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== SIN  ====
 
  function SIN(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== TAN  ====
 
  function TAN(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== COSH  ====
 
  function COSH(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== SINH  ====
 
  function SINH(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== TANH  ====
 
  function TANH(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== EXP  ====
 
  function EXP(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
==== LN  ====
 
  function LN(D BINARY_DOUBLE) return BINARY_DOUBLE;
 
 
 
==== LOG ====
 
  function LOG (LEFT BINARY_DOUBLE, RIGHT BINARY_DOUBLE) return BINARY_DOUBLE;
 
 
 
==== TRUNC ====
 
  function TRUNC (D BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('TRUNC', 1452);
 
 
 
==== ROUND ====
 
  function ROUND (LEFT BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('ROUND', 1452);
 
 
 
==== POWER ====
 
  function POWER (d BINARY_DOUBLE, e BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma FIPSFLAG('POWER', 1452);
 
 
 
==== NANVL ====
 
  function NANVL(n1 NUMBER, n2 NUMBER) return NUMBER;
 
==== NANVL  ====
 
  function NANVL(f1 BINARY_FLOAT, f2 BINARY_FLOAT) return BINARY_FLOAT;
 
==== NANVL  ====
 
  function NANVL(d1 BINARY_DOUBLE, d2 BINARY_DOUBLE) return BINARY_DOUBLE;
 
 
 
==== GREATEST ====
 
  function GREATEST (pattern BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2
 
==== GREATEST ====
 
  function GREATEST (pattern BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2
 
==== LEAST ====
 
  function LEAST (pattern BINARY_FLOAT) return BINARY_FLOAT;
 
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2
 
==== LEAST ====
 
  function LEAST (pattern BINARY_DOUBLE) return BINARY_DOUBLE;
 
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2
 
 
 
 
 
==== '+' ====
 
  function '+' (RIGHT PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('+',14, 0, 1); -- PEMS_QUICK
 
==== '-' ====
 
  function '-' (RIGHT PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('-',15, 2, 41);
 
==== ABS ====
 
  function ABS(I PLS_INTEGER) return PLS_INTEGER;
 
pragma FIPSFLAG('ABS', 1452);
 
 
 
==== '+' ====
 
  function '+' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('+',14, 2, 42);
 
==== '-' ====
 
  function '-' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('-',14, 2, 43);
 
==== '*' ====
 
  function '*' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('*',14, 2, 44);
 
 
 
==== '=' ====
 
  function '='  (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('=',2, 2, 45); -- PEMS_PLS_INTEGER, PEMDCMEQ
 
==== '!=' ====
 
  function '!=' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
-- also <> and ~=
 
pragma BUILTIN('!=',5, 2, 46); -- PEMS_PLS_INTEGER, PEMDCMNE
 
pragma FIPSFLAG('!=', 1452);
 
==== '<' ====
 
  function '<'  (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('<',4, 2, 47); -- PEMS_PLS_INTEGER, PEMDCMLT
 
==== '<=' ====
 
  function '<=' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('<=',6, 2, 48); -- PEMS_PLS_INTEGER, PEMDCMLE
 
==== '>' ====
 
  function '>'  (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('>',1, 2, 49); -- PEMS_PLS_INTEGER, PEMDCMGT
 
==== '>=' ====
 
  function '>=' (LEFT PLS_INTEGER, RIGHT PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('>=',3, 2, 51); -- PEMS_PLS_INTEGER, PEMDCMGE
 
 
 
==== 'IS NULL'====
 
  function 'IS NULL' (I PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('IS NULL', 0, 2, 0); -- PEMS_PLS_INTEGER, PEMDNUL
 
==== 'IS NOT NULL'====
 
  function 'IS NOT NULL' (I PLS_INTEGER) return BOOLEAN;
 
pragma BUILTIN('IS NOT NULL', 0, 2, 50); -- PEMS_PLS_INTEGER, PEMDNUL
 
 
 
==== NVL ====
 
  function NVL(I1 PLS_INTEGER, I2 PLS_INTEGER) return PLS_INTEGER;
 
pragma FIPSFLAG('NVL', 1452);
 
 
 
==== TRUNC ====
 
  function TRUNC (i pls_integer, places pls_integer := 0) return pls_integer;
 
pragma FIPSFLAG('TRUNC', 1452);
 
 
 
==== ROUND ====
 
  function ROUND (i pls_integer, places pls_integer := 0) return pls_integer;
 
pragma FIPSFLAG('ROUND', 1452);
 
 
 
==== SIGN ====
 
  function SIGN(i PLS_INTEGER) return SIGNTYPE;
 
pragma FIPSFLAG('SIGN', 1452);
 
 
 
==== GREATEST ====
 
  function GREATEST (pattern PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('GREATEST',12,240,240);-- This is special cased in PH2
 
==== LEAST ====
 
  function LEAST (pattern PLS_INTEGER) return PLS_INTEGER;
 
pragma BUILTIN('LEAST',13,240,240);-- This is special cased in PH2
 
 
 
  -- MultiSet Functions and Operators.
 
 
 
  -- Equality
 
==== '='  ====
 
  function '='(collection1 IN "<TABLE_1>",collection2 IN "<TABLE_1>")
 
return BOOLEAN;
 
  pragma BUILTIN('=',2, 16, 1);
 
 
 
==== '!=' ====
 
  function '!='(collection1 IN "<TABLE_1>",collection2 IN "<TABLE_1>")
 
return BOOLEAN;
 
  pragma BUILTIN('!=',2, 16, 2);
 
 
 
==== CARDINALITY ====
 
  function CARDINALITY (collection IN "<TABLE_1>") return PLS_INTEGER;
 
 
 
==== SET ====
 
  function SET (collection IN "<TABLE_1>") return "<TABLE_1>";
 
pragma BUILTIN('SET',18, 5, 40);-- Dummy
 
 
 
==== IS A SET====
 
  function 'IS A SET' (collection IN  "<TABLE_1>") return BOOLEAN;
 
pragma BUILTIN('IS A SET',18, 5, 41);-- Dummy
 
==== IS NOT A SET ====
 
  function 'IS NOT A SET'(collection IN  "<TABLE_1>") return BOOLEAN;
 
pragma BUILTIN('IS NOT A SET',18, 5, 42);-- Dummy
 
 
 
==== IS EMPTY ====
 
  function 'IS EMPTY' (collection IN  "<TABLE_1>") return BOOLEAN;
 
==== 'IS  ====
 
  function 'IS NOT EMPTY'(collection IN  "<TABLE_1>") return BOOLEAN;
 
 
 
  -- IS A SUBMULTISET OF
 
==== SUBMULTISET  ====
 
  function 'SUBMULTISET' (collection IN  "<TABLE_1>",
 
  collection2 IN "<TABLE_1>")
 
return BOOLEAN;
 
  pragma BUILTIN('SUBMULTISET',18, 5, 43);
 
 
 
==== MULTISET_UNION_ALL ====
 
  function 'MULTISET_UNION_ALL' (collection IN  "<TABLE_1>",
 
collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
  pragma BUILTIN('MULTISET_UNION_ALL',18, 5, 44);
 
 
 
==== MULTISET_UNION_DISTINCT ====
 
  function 'MULTISET_UNION_DISTINCT' (collection IN  "<TABLE_1>",
 
  collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
pragma BUILTIN('MULTISET_UNION_DISTINCT',18, 5, 45);-- Dummy
 
 
 
==== MULTISET_EXCEPT_ALL ====
 
  function 'MULTISET_EXCEPT_ALL' (collection IN  "<TABLE_1>",
 
collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
pragma BUILTIN('MULTISET_EXCEPT_ALL',18, 5, 46);-- Dummy
 
 
 
==== MULTISET_EXCEPT_DISTINCT ====
 
  function 'MULTISET_EXCEPT_DISTINCT' (collection IN  "<TABLE_1>",
 
  collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
pragma BUILTIN('MULTISET_EXCEPT_DISTINCT',18, 5, 47);-- Dummy
 
 
 
==== MULTISET_INTERSECT_ALL ====
 
  function 'MULTISET_INTERSECT_ALL' (collection IN  "<TABLE_1>",
 
collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
pragma BUILTIN('MULTISET_INTERSECT_ALL',18, 5, 48);-- Dummy
 
 
 
==== MULTISET_INTERSECT_DISTINCT ====
 
  function 'MULTISET_INTERSECT_DISTINCT' (collection IN  "<TABLE_1>",
 
  collection2 IN "<TABLE_1>")
 
return "<TABLE_1>";
 
pragma BUILTIN('MULTISET_INTERSECT_DISTINCT',18, 5, 49);-- Dummy
 
 
 
  -- These are dummy procedures for correct management of new control
 
  -- statements added to PL/SQL. They ensure local procedures which have the
 
  -- same names as newly introduced keywords are not masked by those keywords.
 
 
 
  procedure continue;
 
 
 
  -- REGEXP_COUNT --
 
==== REGEXP_COUNT  ====
 
  function REGEXP_COUNT(srcstr  VARCHAR2 CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionPLS_INTEGER := 1,
 
modifierVARCHAR2 DEFAULT NULL)
 
return PLS_INTEGER;
 
pragma FIPSFLAG('REGEXP_COUNT', 1452);
 
 
 
  function REGEXP_COUNT(srcstr  CLOB CHARACTER SET ANY_CS,
 
pattern VARCHAR2 CHARACTER SET srcstr%CHARSET,
 
positionINTEGER := 1,
 
modifierVARCHAR2 DEFAULT NULL)
 
return INTEGER;
 
pragma FIPSFLAG('REGEXP_COUNT', 1452);
 
 
 
  -- 47322: JSON
 
==== is  ====
 
  -- Because of the variety of inputs and outputs, this dummy function is used
 
  -- for all JSON operations. The name (with the space) is to avoid name
 
  -- capture.
 
========
 
  function  SYS$STANDARD_JSON" return VARCHAR2;
 
 
 
  --#### All user-visible declarations should precede this point.  The
 
  --#### following are implementation-oriented pragmas that may need
 
  --#### editing in the future; we would prefer to be able to edit them
 
  --#### without affecting the rft numbering of user-visible items.
 
 
 
  --#### interface pragmas
 
 
 
  --#### Note that for any ICD which maps directly to a PVM
 
  --#### Opcode MUST be mapped to pes_dummy.
 
  --#### An ICD which invokes another ICD by flipping operands is
 
  --#### mapped to pes_flip, and an ICD whose result is the inverse of
 
  --#### another ICD is mapped to pes_invert
 
  --#### New ICDs should be placed at the end of this list, and a
 
  --#### corresponding entry must be made in the ICD table in pdz7
 

2023년 7월 3일 (월) 17:07 기준 최신판

thumb_up 추천메뉴 바로가기