我能够从包中调用存储过程,以下 link也对此进行了说明。
我的问题是我无法从DBMS_OUTPUT.PUT_LINE(TOTAL)
获取结果,其中TOTAL
是我要使用 type NUMBER 。由于该过程仅处理并且没有将值作为原始输出返回(例如从select中返回),因此结果一直未定义。
我还阅读了以下 link ,但我仍然无法获得TOTAL
。
我的问题是:
是否可以从TOTAL
中获取DBMS_OUTPUT.PUT_LINE(TOTAL)
的值,以在执行查询后传递给TypeORM?
如果无法处理或执行该过程以能够在function上的TOTAL
表达式中获得return
(据说这不是好)/另一个存储过程?
作为参考,我目前正在使用以下查询之一,以便能够从存储过程DBMS_OUTPUT.PUT_LINE
中获取结果:
第一个:
BEGIN pkg_one.endpkg(:id, :adeius,:status,:aregate,:mapony, :total); END;
第二个:
DECLARE
ID NUMBER;
ADEIUS NUMBER;
STATUS NUMBER;
AREGATE VARCHAR2(200);
MAPONY NUMBER;
TOTAL NUMBER;
BEGIN
ID := :ID;
ADEIUS := :ADEIUS;
STATUS := :STATUS;
AREGATE := :AREGATE;
MAPONY := :MAPONY;
PKG_ONE.ENDPKG(
ID => ID,
ADEIUS => ADEIUS,
STATUS => STATUS,
AREGATE => AREGATE,
MAPONY => MAPONY,
TOTAL => TOTAL);
TOTAL := TOTAL;
--DBMS_OUTPUT.PUT_LINE(TOTAL); --either the initial procedure or the call TOTAL is the Result I want
END;
更新的工作功能。
CREATE OR REPLACE FUNCTION PTD (ID IN NUMBER,ADIEUS IN NUMBER ,STATUS IN NUMBER,AREGATE IN VARCHAR2,MAPONY IN NUMBER) RETURN VARCHAR2 AS TOTAL NUMBER;
BEGIN
PKG_ONE.ENDPKG(ID, ADIEUS,STATUS,AREGATE,MAPONY, TOTAL);
RETURN TOTAL;
END PTD;
答案 0 :(得分:0)
回答原始问题:
如link的评论@Marmite Bomber之一所述,这可能是可能的。但是,不必使用DBMS_OUTPUT
来传递值。
下面是从存储过程(SP)中SELECT
function
进行CREATE OR REPLACE FUNCTION PTD (ID IN NUMBER,ADIEUS IN NUMBER ,STATUS IN NUMBER,AREGATE IN VARCHAR2,MAPONY IN NUMBER) RETURN VARCHAR2 AS TOTAL NUMBER;
BEGIN
PKG_ONE.ENDPKG(ID, ADIEUS,STATUS,AREGATE,MAPONY, TOTAL);
RETURN TOTAL;
END PTD;
之前的工作功能,SQL和TypeORM查询,这些更新先前已更新:
功能:
SELECT PTD(:ID, :ADIEUS,:STATUS,:AREGATE,:MAPONY) AS VAL FROM DUAL; -- NOTE that :var is input
SQL查询:
await getManager().query("SELECT PTD(" + id + ", " + adeius+ ", " + status + ", '" + aregate + "', " + mapony + ") AS VAL FROM DUAL")
.then(
res => {
data.count = res[0].VAL; //note that data.count is from const data = { count:0 };
},
);
TypeORM:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
</style>
</resources>
注意:使用函数调用SP可能被认为bad practice。还有以前的it's not possible。
就个人而言,是否作弊是值得商bat的,但是只要调用SP的函数或SP都不会影响任何database state。没关系。