首页 文章

查看参数?

提问于
浏览
5

我是否正确地认为无法使用参数创建视图?

我有一个子查询查询,在其where子句中我需要指定参数 . 指定视图的where子句无济于事 . 我想用参数调用简单视图而不是发送到数据库复杂的sql查询 . 怎么可能这样做?

N.

3 回答

  • 2

    你应该可以使用table-valued function .

  • 0

    你提到“指定视图的哪个子句无济于事” . 为什么不?我的建议是只创建一个没有参数的视图,并使用“select * from view where [your predicates with your parameters]” .

    如果您真的想继续使用参数化视图,那么可以在where子句中使用应用程序上下文 . 您可以在文档中阅读它们:http://download.oracle.com/docs/cd/E11882_01/network.112/e10574/app_context.htm#DBSEG011

    并且here就是一个例子 .

    问候,Rob .

  • 6

    试试这个:在你的代码中:

    `   ....
        RDB$SET_CONTEXT('USER_SESSION', 'VARNAME','VALUE');
        SELECT * FROM VIEW VIEWNAME;
        ...`
    

    在您的视图定义中:

    SELECT * FROM TABLENAME 
            WHERE FIELDNAME=RDB$GET_CONTEXT('USER_SESSION', 'VARNAME');
    

    那是 .

相关问题