你select的时候查询出来的结果不只一条。

解决方案 »

  1.   

    select 的格式使用错误,正确的格式:
    select cid into tmpcid from classes where cname=cname;
    select lid into teplid from links where lname = lname;
    insert into cltable(cid,lid) values(tmpcid, tmplid);试试吧,应该没有错误
      

  2.   

    select 语句查询出来的数据多了,你查一下你select 一次可以查出来多少条记录
      

  3.   

    to icewolf_li(冰狼)  and newboy3205579(新手上路):两位不要只看错误信息,要好好看看他问题的描述
    他的建表语句两位有没有看?很明显select的条件都是unique,所以根本不是select出多条记录。
    而是他的语句写法有错误。
      

  4.   

    1.参数不要指定长度
    2.定义变量不需要declare
    3.select col_name into var_name 而不是 :=
    楼主改一下再看看
      

  5.   

    楼主,既然CID、LID是主键,并且CName、LName也是唯一的,可以这样写,确保只返回一条记录
    select min(CID) into tmpcid  from Classes where CName=cname;
    select min(LID) into tmplid from Links where LName=lname;
      

  6.   

    frien,
    这样做不行啊,得不到预期的结果.
    现在我的Classes,Links中分别有如下数据:
    Classes
    CID      CName
    1        C++
    4        OracleLinks
    LID       LName
    2         www.csdn.net
    3         www.oradb.netexecute INSERTCLTABLE_PRO('Oracle','www.oradb.net')
    当我执行后,在CLTable中存在这样一条纪录
    CID       LID
    1         2
    而不是预期的结果
    CID       LID
    2         3
      

  7.   

    把参数名称改一下,lname->p_lname,cname->p_cname