一条 SQL - Oracle / 基础和管理
有这样一条SQL
Select Get_Costtaxrate(col1), Get_Tcostvalue(col1) from a
其中Get_Costtaxrate、Get_Tcostvalue都是函数,这两个函数里面都是查找一个大表,Get_Tcostvalue还需要调用Get_Costtaxrate
来进行计算,可以将两个函数合并成一个函数吗?
或者有没有高效一点的方式,感觉这样效率不高
给出你的表结构,数据和想要的结果。
2个函数合并,要看你的函数里包含的逻辑关系了,复杂的话建议你还的用2个函数
准确来说应该是三个函数,
Function A(out p1,out p2)
Function B
调用 A
返回 P1
Function C
调用 A
返回 P1与P2的计算值
要是能够在select 里取得函数的两个返回值就好了
我就可以这样写
select P1,P1与P2的运算
from
(
select A(P1,P2) from Tab1
)
不知道可以这样做不
你这个语句我不知道可行不,但思路完全可以啊。PLSQL里完全可以赋值给变量嘛
可以合并,你加个参数,Function A(out p1,out p2, arg In varchar2)
当arg 是'B'的时候返回取P1,是'C'的时候 返回P2=P1与P2的计算
首先,不是在Pl/SQL里,而是一条SQL里面,所以不能考虑赋值变量的方式
其次,现在不是合并与否的问题,而是希望减少调用2次A 函数的影响。
没有答案?
这个也能合并啊?不会吧..
但是函数只能返回一个数值啊.
不能在SQL实现的.
相关问答:
在执行包的时候引用oracle spatial空间函数出错,出错情况如下
Errors in file
/user/oracle/app/oracle/admin/grid/udump/grid1_ora_143768.trc: ORA-29902:
error in executing ODCIIndexStart() routine ORA-0 ......
sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊
随便搞一D版吧,
迅雷第一个就可以用
2000,2005都这样
http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
做玩data guard 后
在Primary服务器 执行
SQL>SELECT SEQUENCE#,APPLIED from V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# APP
---------- ---
13 NO
13 YES ......
--建立一个包以定义一个游标
create or replace package PK_test
as
type cur_test is ref cursor;
end PK_test;
--建立一个过程,通过输入JOBID,返回一个表记录(游标)!
create or replace ......