不能这样啊。
试试这个行不行:create  FUNCTION SalesByStoreString
(
 @storeid varchar(30),
 @ varchar(10)
)
RETURNS TABLE
AS
RETURN(SELECT title, qty
       FROM sales s, titles t
       WHERE s.stor_id = @storeid and
             t.title_id = s.title_id
             AND (@MARK = '1' OR ora_date='1994-09-14'))

解决方案 »

  1.   

    呵呵,错了一点:create  FUNCTION SalesByStoreString
    (
     @storeid varchar(30),
     @ varchar(10)
    )
    RETURNS TABLE
    AS
    RETURN(SELECT title, qty
           FROM sales s, titles t
           WHERE s.stor_id = @storeid and
                 t.title_id = s.title_id
                 AND (@MARK <> '1' OR ora_date='1994-09-14'))
      

  2.   

    不过这样效率太低了.
    http://www.cnoug.org/bin/ut/topic_show.cgi?id=134&h=1&bpg=1&age=30
      

  3.   

    同时问一下:
    CREATE   PROCEDURE C_TEST_PROC
        @chvOrder VARCHAR(100)='au_id',
        @chvSort   VARCHAR(10)='ASC'
    AS
    DECLARE @chvSQL VARCHAR(100)
    SELECT @chvSQL='SELECT * FROM AUTHORS'
              SELECT  @chvSQL= @chvSQL +' ORDER BY ' +@chvOrder+' '+@chvSort
    EXEC (@chvSQL)
    GO程序中调用这样一个存储过程,可以得到select 查询出来的结果集吗?oracle中好象不能直接去执行一条动态形成sql语句.能得到的话那些值怎么去取呢?是不是象平常执行sql语句没有区别.
      

  4.   

    你是什么前台呀???
    例:delphi直接adoquery1.add('exec 过程 (...)');
    adoquery1.open;
    就可以了!
    是象平常执行sql语句没有区别