本帖最后由 chejunwei 于 2010-06-29 10:38:57 编辑

解决方案 »

  1.   

    F_GETDATA(T.COL1) > ?? 
    或者 F_GETDATA(T.COL1)< ?? 
    还是 F_GETDATA(T.COL1) = ??
      

  2.   

    都可以,现在主要是FUN.OBJ1这个对象在WHERE下不能使用。
      

  3.   

    CREATE OR REPLACE TYPE MYTYPE AS OBJECT
    (
    OBJ1 NUMBER,
    OBJ2 NUMBER
    );--你的这个存储过程这样写就可以了
    CREATE OR REPLACE FUNCTION F_GETDATA(PARA IN NUMBER)
    RETURN MYTYPE
    is
      MyTypes MYTYPE;
    BEGIN
      select MYTYPE(PARA,PARA + 100) into MyTypes from dual;
      RETURN MyTypes;
    END  F_GETDATA;SELECT F_GETDATA(10) FUN FROM dual T WHERE F_GETDATA(10).obj1>1;
      

  4.   

    CREATE OR REPLACE TYPE MYTYPE AS OBJECT
    (
    OBJ1 NUMBER,
    OBJ2 NUMBER
    );--你的这个存储过程这样写就可以了
    CREATE OR REPLACE FUNCTION F_GETDATA(PARA IN NUMBER)
    RETURN MYTYPE
    is
    MyTypes MYTYPE;
    BEGIN
    select MYTYPE(PARA,PARA + 100) into MyTypes from dual;
    RETURN MyTypes;
    END F_GETDATA;SELECT F_GETDATA(10) FUN FROM dual T WHERE F_GETDATA(10).obj1>1;