我是否正确地认为无法使用参数创建视图?
我有一个子查询查询,在其where子句中我需要指定参数 . 指定视图的where子句无济于事 . 我想用参数调用简单视图而不是发送到数据库复杂的sql查询 . 怎么可能这样做?
N.
你应该可以使用table-valued function .
你提到“指定视图的哪个子句无济于事” . 为什么不?我的建议是只创建一个没有参数的视图,并使用“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 .
试试这个:在你的代码中:
` .... RDB$SET_CONTEXT('USER_SESSION', 'VARNAME','VALUE'); SELECT * FROM VIEW VIEWNAME; ...`
在您的视图定义中:
SELECT * FROM TABLENAME WHERE FIELDNAME=RDB$GET_CONTEXT('USER_SESSION', 'VARNAME');
那是 .
3 回答
你应该可以使用table-valued function .
你提到“指定视图的哪个子句无济于事” . 为什么不?我的建议是只创建一个没有参数的视图,并使用“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 .
试试这个:在你的代码中:
在您的视图定义中:
那是 .