gpt4 book ai didi

sql - 获取Oracle中不包含 "_"的表名

转载 作者:行者123 更新时间:2023-12-04 14:09:33 26 4
gpt4 key购买 nike

我正在编写一个脚本,该脚本应该获取包含指定列的表名列表,并排除包含下划线的表名。我试过:

SELECT TABLE_NAME
FROM USER_TAB_COLUMNS
WHERE
COLUMN_NAME = 'SERIAL_NUMBER' AND
TABLE_NAME NOT LIKE '%\_%';

此查询仍然提取包含下划线的表名。我错过了什么?

最佳答案

下划线是 LIKE 语句中的通配符 - 它只匹配一个字符。试试这个:

SELECT TABLE_NAME
FROM USER_TAB_COLUMNS
WHERE COLUMN_NAME = 'SERIAL_NUMBER'
AND instr(TABLE_NAME, '_') = 0;

发布后我注意到您实际上试图转义下划线。 LIKE 没有默认转义字符,因此您需要告诉数据库您在做什么:

  SELECT TABLE_NAME
FROM USER_TAB_COLUMNS
WHERE COLUMN_NAME = 'SERIAL_NUMBER'
AND TABLE_NAME NOT LIKE '%\_%' ESCAPE '\';

Find out more.

关于sql - 获取Oracle中不包含 "_"的表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15953380/

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