我是一个oracle初级使用者我现在有张表
id number
name varchar2
我想做一个输入id输出name的简单存储过程,希望可以指点我一下,并且在worksheet里如何调试它?(可以显示输出结果)
望赐教,谢谢

解决方案 »

  1.   

    create or replace FUNCTION fn_ll(p_id in number)
    return varchar2
    is
    v_name varchar2(20);
    begin
    select name into v_name from tablename where id=p_id;
    return v_name ;
    end;
      

  2.   

    select fn_ll(1) from dual 可以看到结果如果输入的id 没有name会有异常
      

  3.   

    那如果我想有name返回name,没有name输出 "It is a invalid ID",应如何操作?
      

  4.   

    create or replace FUNCTION fn_ll(p_id in number)
    return varchar2
    is
    v_name varchar2(200);
    begin
    v_name :="It is a invalid ID";
    select name into v_name from tablename where id=p_id;
    return v_name ;
    EXCEPTION
          WHEN no_data_found
          THEN
             return v_name ;
    end;
      

  5.   

    还有,创建FUNCTION没问题,但我用哪个语句运行这个FUNCTION来进行测试呢?
      

  6.   

    select fn_ll(1) from dual 可以看到结果
      

  7.   

    我试了下
    v_name :="It is a invalid ID";//这个有问题
    去掉就可以编译,不然说“警告: 创建的函数带有编译错误。”
      

  8.   

    v_name :='It is a invalid ID';--不好意思,没盖成单引号
      

  9.   

    还一个问题,为什么我在is 后面加上declare关键字也无法编译?
      

  10.   

    is后面本身就可以声明变量了,不需要declare了语法规则就这样的
      

  11.   

    啊,还一个问题,为什么我excute fn_ll(1);不能运行?他说我不是一个过程