sql server 定义变量如下:declare @id int,@name varchar(100)select @id=id,@name=name from tb where ...这样的语句,不管是在查询分析器,还是ManageMent Studio ,还是在存储过程里,都可以执行。
那么在oracle 的,sql plus,isqlplus,存储过程,里是怎么定义和使用的呢? 
是不是都一样?哪位提供点
另外,sqlserver 里有联机丛书,oracle哪里可以找到语法方面的资料?谢谢!

解决方案 »

  1.   

    存储过程里
    create or replace procedure js_szy
    as
    id int;
    name varchar2(100);
    begin
    select id,name into id.name from tb where ...
    end;如果是plsql块就是
    declare
    id int;
    name varchar2(100);
    begin
    select id,name into id.name from tb where ...
    end;
      

  2.   

    declare 
    c_id int;
    c_name varchar(100);
    begin
    select id,name into c_id,c_name from tb where ...;  --只有一条记录
    dbms_output.put_line(c_id||' '||c_name);
    end;
      

  3.   

    oracle官方网站有oracle在线帮助文档
      

  4.   


    ----写错了,应该是逗号
    存储过程里
    create or replace procedure js_szy
    as
    v_id int;
    v_name varchar2(100);
    begin
    select id,name into v_id,v_name from tb where ...
    end;如果是plsql块就是
    declare
    v_id int;
    v_name varchar2(100);
    begin
    select id,name into v_id,v_name from tb where ...
    end;
      

  5.   


    declare @id int,@name varchar(100)select @id=id,@name=name from tb where ...
    --在oracle类似
    declare
    id int;
    name varchar2(100);
    begin
    select id,name into id,name from tb where ...
      

  6.   

    这个答案会没任何结果,他会默认的把id字段往id字段里送,等于白搭plsql块里的变量 不应该和字段名一致。
      

  7.   

    哦,谢谢,还有2楼的这位,dbms_output.put_line(c_id||' '||c_name);这个是输出吗?我在isqlplus 里执行,只显示pl/sql执行完成,没显示2个变量拼接的结果,是不是跟int型有关系?
    declare a int;b int;
    begin
    select id,name into a,b from ta where rownum=1;
    dbms_output.put_line(a||' '||b);end;
      

  8.   

    SET SERVEROUTPUT ON;哦,要设置