sql 里有两个地方出现变量
using 的时候,要写两次的吧?

解决方案 »

  1.   

    execute immediate '.......' into code using i,i;
      

  2.   

    ... using i,i;我试过了,还是不可以,报相同的错。表结构:
    CREATE TABLE fixture
    (week NUMBER(1),
     home char(2),
     away CHAR(2),
     CONSTRAINT fixture_pk PRIMARY KEY (home, away),
     CONSTRAINT home_fk FOREIGN KEY (home) REFERENCES club (mnemonic),
     CONSTRAINT away_fk FOREIGN KEY (away) REFERENCES club (mnemonic));INSERT INTO fixture VALUES(1,'RQ','RL');
    INSERT INTO fixture VALUES(1,'SG','WH');
    INSERT INTO fixture VALUES(2,'RL','SG');
    INSERT INTO fixture VALUES(2,'WH','RQ');
    INSERT INTO fixture VALUES(3,'RL','WH');
    INSERT INTO fixture VALUES(3,'SG','RQ');
    INSERT INTO fixture VALUES(4,'RL','RQ');
    INSERT INTO fixture VALUES(4,'WH','SG');
    INSERT INTO fixture VALUES(5,'SG','RL');
    INSERT INTO fixture VALUES(5,'RQ','WH');
    INSERT INTO fixture VALUES(6,'RQ','SG');
    INSERT INTO fixture VALUES(6,'WH','RL');
    CREATE TABLE club
    (code char(2),
     name char(15),
     location CHAR(20));insert into club values('RQ','Raquet','String Lane');
    insert into club values('RL','Royal','Royal Park');
    insert into club values('SG','Sunny Glades','Sunny Glades');
    insert into club values('WH','White','City Park');
      

  3.   

    表结构:
    CREATE TABLE fixture
    (week NUMBER(1),
     home char(2),
     away CHAR(2),
     CONSTRAINT fixture_pk PRIMARY KEY (home, away),
     CONSTRAINT home_fk FOREIGN KEY (home) REFERENCES club (code),
     CONSTRAINT away_fk FOREIGN KEY (away) REFERENCES club (code));copy错了一个地方
      

  4.   

    我测试了一下,应传入三个参数,... using i,i,i;但报了个错,正在研究...
      

  5.   

    ORA-00600: 这个错误一般为Oralce的BUGORA-00600:internal error code,arguments:[num],[?],[?],[?],[?] 
    产生原因:这种错误通常为ORACLE的内部错误,只对OSS和ORACLE开发有用。ORA-600的错误经常伴随跟踪文件的状态转储(系统状态和进程状态),系统状态存储将包括ORACLE RDBMS持有的当前对象的信息,进程状态转储则将显示特殊进程持有的对象,当进程符合了某错误条件时,经常是由于一些信息取自它持有的一个块,如果我们知道这些错误进程持有的块,就容易跟踪问题的来源。 解决方法:一般来说出现这个错误我们本身是无法解决的,只有从提高系统本身各方面来解决这个内部问题,如增加硬件设备,调整系统性能,使用OPS(当然OPS从某种意义上说并不是一种好的解决方式)等。ORA-600错误的第一个变量用于标记代码中错误的位置(代码中的每个部分的第一变量都不一样),从第二个到第五个变量显示附加信息,告诉OSS代码在哪里出现了错误。 
      

  6.   

    对啊,我也尝试得用过输入3个参数,但是也和你所说得一样报错。照你这样的说法,我只能想别的sql写法咯? 唉,初涉oracle这片处女地就碰到这样那样的问题。anyway,谢了,我再试试别的sql写法吧。有结果告诉你
      

  7.   

    另外,说一下,我运行的oracle是官方网站上down下来的9i,机器配置为P4 2。8g, 768M
      

  8.   

    只能用declare i number;
    code1 char(2);
    begin
    i:=2;
    code1:='';execute immediate '
    select code  from club 
           full outer join (select home,count(home) couH from fixture where week=' || i || ' group by home)a on club.code=a.home 
           full outer join (select away,count(away) couA from fixture where week=' || i || ' group by away)b on club.code=b.away 
           where (nvl(a.couH,0) + nvl(b.couA,0))>1 and rownum=1' into code1;
    dbms_output.put_line(code1);
    end;这样的方法来写循环了