Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Can't code for s.... peanuts

RE: Can't code for s.... peanuts

From: <schmoldt_at_fyiowa.com>
Date: Mon, 23 Jul 2001 11:28:42 -0700
Message-ID: <F001.0035242F.20010723111806@fatcity.com>

The
results of a function need to be SELECTed INTO something.  You can't just EXECUTE a function like you can a procedure.
<FONT face=Arial color=#0000ff

size=2> 
Try
something along the lines of:
<FONT face=Arial color=#0000ff

size=2> 
SELECT
check_for_name(<FONT color=#0000f0
size=1>'Cruise')
<FONT face=Arial color=#0000ff

size=2>INTO    result_variable
from
dual;
<FONT face=Arial color=#0000ff

size=2> 
<FONT face=Arial color=#0000ff

size=2>Dave
<FONT face=Arial color=#0000ff

size=2> 
-----Original Message-----From:
oqij4ngfcrweuh001_at_sneakemail.com
[mailto:oqij4ngfcrweuh001_at_sneakemail.com]Sent: Monday, July 23, 2001 1:27 PMTo: Multiple recipients of list ORACLE-LSubject: Can't code for s.... peanuts
<BLOCKQUOTE dir=ltr

style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">   Hi again everybody,
   
  I'll try to be as descriptive as possible, sorry   if I leave anything important out.
   
  I have the following function which I'm compiling   using PL/SQL Developer (tnx Djordje).   

  CREATE OR REPLACE FUNCTION check_for_name   (p_name_to_check VARCHAR)RETURN BOOLEAN   ISCURSOR c_namestbl ISSELECT
  lnameFROM namesWHERE lname =
  p_name_to_check;v_return_value
  BOOLEAN;BEGINOPEN c_namestbl;IF
  c_namestbl%NOTFOUND THENv_return_value :=   FALSE;ELSIF C_namestbl%FOUND
  THENv_return_value := TRUE; END
  IF;RETURN v_return_value;CLOSE
  c_namestbl;END check_for_name;
  It compiles without errors (now).
  The table 'names' is built like this :   SVRMGR> DESCRIBE names;Column

  Name                    
  Null?    Type------------------------------ -------- 
  ----FNAME                                   
  VARCHAR2(20)LNAME                                   
  VARCHAR2(20)SVRMGR>
  With data like this :
  SVRMGR> SELECT * FROM
  names;FNAME               
  LNAME-------------------- 
  --------------------Bruce                
  WillisSalma                
  HayekTom                  
  CruiseElle                 

  McPherson4 rows selected.
  But, whenever I try to do this :<FONT   face=Arial size=2>
  EXECUTE check_for_name(<FONT color=#0000f0   size=1>'Cruise');
  so I can run the function from PL/SQL Developer I   get the following error :
  "ORA 0900 - Invalid SQL Statment"
  However, If I execute the same statement from   SQL*Plus or svrmgrl I get a differant error :   SVRMGR> EXECUTE
  check_for_name('Cruise'); check_for_name('Cruise'); *ORA-06550:   line 2, column 2:PLS-00221: 'CHECK_FOR_NAME' is not a procedure or is   undefinedORA-06550: line 2, column 2:PL/SQL: Statement   ignored
  I'm running Oracle Enterprise Edition 8.1.5.0.0 on   Windows 2000.
  If that's not enough info, please let me know and I   will supply whatever I can.
  Thanks for reading this far :)
  Michael.
   
   
   
Received on Mon Jul 23 2001 - 13:28:42 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US