gpt4 book ai didi

oracle - Oracle Execute立即抛出缺少关键字的错误

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

在我的存储过程中,使用以下查询:

SELECT COUNT(*) INTO COL_NO FROM user_tab_columns WHERE table_name='PAY_SLIP_FEB_16';  

该查询没有错误(因为它不应该)。但是这里的表名是固定的,因此我想使用一个将提供表名的变量。所以我像这样更改查询:
EXECUTE IMMEDIATE 'SELECT COUNT(*) INTO COL_NO FROM user_tab_columns WHERE table_name='''||TBL_NAME||'''';  

该查询给出错误:
ORA-00905: missing keyword  

我做错什么了? TIA。

N.B. :TBL_NAME是将提供表名称的传入参数,而COL_NAME只是NUMBER(5,0)类型的变量。

最佳答案

我希望代码将INTO作为EXECUTE IMMEDIATE的一部分,而不是在动态查询字符串中:

EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM user_tab_columns WHERE table_name='''||TBL_NAME||''''
INTO COL_NO ;

注意:我将使用单独的变量编写此代码:
v_sql  := 'SELECT COUNT(*) FROM user_tab_columns WHERE table_name = ''@TBL_NAME''';
v_sql := REPLACE(v_sql, '@TBL_NAME', TBL_NAME)

EXECUTE IMMEDIATE v_sql INTO v_COL_NO ;

关于oracle - Oracle Execute立即抛出缺少关键字的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36152482/

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