gpt4 book ai didi

sql - 甲骨文 11g "Bind variable does not exist"

转载 作者:行者123 更新时间:2023-12-04 20:40:52 24 4
gpt4 key购买 nike

我在以下代码中收到“ORA01006 绑定(bind)变量在第 15 行不存在”错误:

DECLARE
v_search_string varchar2(4000) := 'OK';
v_query_str VARCHAR2(4000);
match_count integer;
BEGIN
FOR t IN (SELECT owner,
table_name,
column_name
FROM all_tab_columns
WHERE data_type in ('CHAR', 'VARCHAR2', 'NCHAR', 'NVARCHAR2') And TABLE_NAME = 'T1' And OWNER = 'O1')
LOOP
Begin
v_query_str := 'SELECT COUNT(*) FROM '|| t.table_name || ' WHERE ' || t.column_name || ' Like ''' || '%:1%' || '''';
dbms_output.put_line(v_query_str);
EXECUTE Immediate v_query_str
INTO match_count
USING v_search_string;
IF match_count >= 0 THEN
dbms_output.put_line( t.owner || '.' || t.table_name ||' '||t.column_name||' '||match_count );
END IF;
END;
END LOOP;
END;

我只是想遍历表中的所有字符列并计算每个字符中有多少值与 v_search_string 值匹配。

行“dbms_output.put_line(v_query_str);”打印一行:
SELECT COUNT(*) FROM T1 WHERE Col1 Like '%:1%'

表中有 10 列是指定的类型。

那里显然有一个绑定(bind)变量(%1),所以我不知道发生了什么。

最佳答案

形成如下所示的字符串。

t.column_name || ' Like ''%''||:1||''%'''

绑定(bind)变量不应包含在单引号中,因为它将被视为字符串文字。所以当你使用 USING它以这个异常结束。

关于sql - 甲骨文 11g "Bind variable does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26491682/

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