declare
name zhangyi.zy_parent%rowtype;
begin
select * into name from zhangyi.zy_parent;
end;我写的这行代码为什么执行时会提示:第2行,第14列
必须声明'ZY_PARENT'组件第2行,第6列
Item ignored第4行,第15列
此表达式类型声明不完整或格式不正确第4行,第20列
标识符无效第4行,第1列
statement ignored请高手指教该怎么解决,菜鸟在这先谢了!

解决方案 »

  1.   

    表zhangyi里没有列zy_parent而且由于列太多,不能用*
      

  2.   

    select * from zhangyi.zy_parent; -- 这一句你在SQL窗口下运行出来有结果吗?
      

  3.   

    回复2楼谢谢关注 zhangyi是方案名,zy_parent是表名回复3楼谢谢关注
    有结果
    selelct * from zhangyi.zy_parent;id   name                      salary
    30   accounting
    1    zhangyi commit
    60   research
    90   sales
    120  operations
    300  zhangyi delete
      

  4.   

    按楼主的意思,zhangyi是模式名,zy_parent是表名。
    提几点建议:
    1、变量名取得也忒那个了,最好不要取这种类似关键字的变量名;
    2、select * into name from zhangyi.zy_parent这个语句若有多行或空行都将报错,怎么地也要判断一下吧:
        begin 
          select  * into name from zhangyi.zy_parent where rownum = 1;
        exception
            when no_data_found then
                  null;-----这里语句看你怎样处理了
        end;
      

  5.   

    select * into name from zhangyi.zy_parent; 
    查出多行记录不能放在name里
      

  6.   

    回复5楼谢谢关注declare
    aaa zhangyi.zy_parent%rowtype;
    begin 
    select * into aaa from zhangyi.zy_parent where rownum = 1; 
    exception 
    when no_data_found then 
      dbms_output.put_line('error');
    end;我这样写了还是上面的错误~
      

  7.   

    第一步:
      create synonym zy_parent1   for zhangyi.zy_parent;第二步:declare 
    aaa zy_parent1%rowtype; 
    begin 
    select * into aaa from zy_parent1 where rownum = 1; 
    exception 
    when no_data_found then 
      dbms_output.put_line('error'); 
    end; 
      

  8.   

    谢谢bg1001问题以解决~是创建个同义词就好了。但是我想问一下为什么不创建同义词就会出现我说的那样情况呢?是不是oralce 不识别zhangyi.zy_parent这个对象呢?
      

  9.   

    这么深的问题我也打不上来,我只是根据工作的经验排除错误。若你想研究理论深度,不妨在oracle 网站上多转转,或看看参考书籍