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