sql – 在Oracle的select语句中使用对象类型
发布时间:2020-05-24 16:19:59 所属栏目:MsSql 来源:互联网
导读:我有一个函数返回一个有3个值的对象.有没有办法从select语句调用该函数并使每个值成为不同的列?我可以把它分成3个函数,但是这些值是相关的,所以我想把它作为性能原因保留. (因此oracle不必为查询中的每一行调用3个非常相似的复杂函数.) 因此对于: create ty
|
我有一个函数返回一个有3个值的对象.有没有办法从select语句调用该函数并使每个值成为不同的列?我可以把它分成3个函数,但是这些值是相关的,所以我想把它作为性能原因保留. (因此oracle不必为查询中的每一行调用3个非常相似的复杂函数.) 因此对于: create type test_obj is object (
a NUMBER,b NUMBER,c NUMBER);
create or replace function test_func (
pinput NUMBER)
return test_obj
as
begin
return test_obj(0,0);
end test_func;
我希望能够从select语句调用test_func,但是a,b和c是不同的列,而不是多次调用该函数.我想也许是这样的,但它不起作用: select
iv.col1,iv.col2,iv.func_data.a,iv.func_data.b,iv.func_data.c
from
(select
mt.col1,mt.col2,test_func(mt.input) as func_data
from
my_table mt) iv
有没有办法在Oracle 10g中做这样的事情,还是有更好的方法来解决这个问题? 解决方法问题中的select语句将起作用.它失败了因为我没有为内联视图添加别名.出于某种原因,这将有效: select
iv.func_data.a,iv.func_data.c
from
(select
test_func(mt.input) as func_data
from
my_table mt) iv
但这不会: select
func_data.a,func_data.b,func_data.c
from
(select
test_func(mt.input) as func_data
from
my_table mt) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server 数据库性能优化二:数据库表优化提升性能
- sql-server-2008 – 对没有sysadmin角色的已还原数据库的MS
- SQLServer 2000 数据库同步详细步骤[两台服务器]
- SQL Server SERVER的BETWEEN AND的使用
- sql server 游标实例:循环表内数据,并根据参数 查询其他表
- 数据库 – HBase如何保证行级原子性?
- win2003安装sqlserver 2000提示无法验证产品密钥的解决方法
- sqlserver中去除字符串中连续的分隔符的sql语句
- SQL Server数据类型char、nchar、varchar、nvarchar的区别浅
- SQL Server 数据库自动执行管理任务
推荐文章
站长推荐
热点阅读
