你的cust_id要传给变量,所以,要into
select cust_id into &变量 from CUST_TEL WHERE CUST_TEL.cust_id=input;

解决方案 »

  1.   

    FUNCTION    "FUN_TESTZXL"    (input  in  varchar2)  
       return  int  as  
       PRAGMA  AUTONOMOUS_TRANSACTION;
    v_cust_id cust_tel.cust_id%type;  
    begin  
         select  cust_id into v_cust_id from  CUST_TEL  WHERE  CUST_TEL.cust_id=input;  
       return  1;  
    end;
      

  2.   

    在PL/SQL中,select ....into...是一个赋值语法
      

  3.   

    存储过程中使用select必须要into,
    难道你还想要用result=...方式得到结果吗?
      

  4.   

    问题的关键在于当我不需要SELECT中的返回信息时,Oracle有没有必要报错。
    就拿我的示例一样我只是SELECT一次,然后return 1;有何不可,但是系统偏说是错误。
      

  5.   

    在存储过程中不支持单一的SQL语句,如:select * from aa;这是不能通过的,要求是要有INTO子句:select xx into aa from aa.....
      

  6.   

    tiemuzh777(初始化) 这是语法,不是有没有必要的问题。你要这样较真,帮不了你了
      

  7.   

    FUNCTION    "FUN_TESTZXL"    (input  in  varchar2)  
       return  int  as  
      begin  
         return  1;  
    end;
    不就完事了,还要select语句干什么?
      

  8.   

    to 螃蟹
    也就是说在PL/SQL里的函数中使用SELECT的语法就是要加INTO么,因为在交互模式下可以直接用SELECT返回数据。
      

  9.   

    直接写select,就是查询,屏幕显示查询结果而写在pl/sql里,你的结果不可以直接做为记录集返回,所以,要into给变量。你的那种,在sqlserver里可以。
      

  10.   

    变通方法:
    FUNCTION  "FUN_TESTZXL"  (input in varchar2)
        return int as
        PRAGMA AUTONOMOUS_TRANSACTION;
    begin
        EXECUTE IMMEDIATE 
              'select cust_id from CUST_TEL WHERE CUST_TEL.cust_id='''||input||'''';
        return 1;
    end;即:将select当纯粹的SQL执行一下就可以了,但我不知道你这样做有什么作用?在检查语法么?
      

  11.   

    select单独执行的话,好像必须要写into的吧,就像赋值语句后面一定要写值一样,如果不写,那你的程序编译通不过一样,如果光要执行不要结果,那你执行select干什么呢?
    用cursor可以,执行sql文返回cursor,而且你可以只是执行对取得的内容不做任何处理