gpt4 book ai didi

oracle - pl/sql显示select语句的结果

转载 作者:行者123 更新时间:2023-12-01 02:33:33 25 4
gpt4 key购买 nike

Set ServerOutput on size 100000;
declare
countTab number := 0;
countCol number := 0;
currDate varchar2(30);
scale number := 0;


Begin

select count(*) into countCol from USER_TAB_COLUMNS where TABLE_NAME = 'EVAPP_INTERFACE' and COLUMN_NAME = 'TARGET_AMNT_LTV_NUM' and DATA_SCALE is null;
IF (countCol <> 0) then

DBMS_OUTPUT.put_line(' EVAPP_INTERFACE.TARGET_AMNT_LTV_NUM values begin');
execute immediate 'select APPSEQNO, TARGET_AMNT_LTV_NUM from evapp_interface where TARGET_AMNT_LTV_NUM > 999999999999';

END IF;
END;
\

我正在尝试显示选择查询的结果。我尝试按原样运行 select 语句,但它给出了一个异常,说它找不到提到的列。所以,我试着把表名放在列的前面,它提示我需要使用 INTO ,我也使用了它,但它仍然不喜欢语法。

最佳答案

假设您使用的是 SQL*Plus,最简单的选择可能是执行类似的操作

Set ServerOutput on size 100000;
variable rc refcursor;
declare
countTab number := 0;
countCol number := 0;
currDate varchar2(30);
scale number := 0;
Begin
select count(*)
into countCol
from USER_TAB_COLUMNS
where TABLE_NAME = 'EVAPP_INTERFACE'
and COLUMN_NAME = 'TARGET_AMNT_LTV_NUM'
and DATA_SCALE is null;
IF (countCol <> 0) then
DBMS_OUTPUT.put_line(' EVAPP_INTERFACE.TARGET_AMNT_LTV_NUM values begin');
open :rc
FOR 'select APPSEQNO, TARGET_AMNT_LTV_NUM ' ||
' from evapp_interface ' ||
' where TARGET_AMNT_LTV_NUM > 999999999999';
END IF;
END;
/

PRINT rc;

如果你想显示来自 PL/SQL 的结果,你需要打开游标,将结果提取到局部变量中,然后对局部变量做一些事情,比如将它们写入 DBMS_OUTPUT。 .

关于oracle - pl/sql显示select语句的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com