Sql Select语句在Oracle中不使用双引号
我的表有一个名为select或NOT的列,或其他保留键 我尝试选择“select”列,但无法选择,因为oracle引发如下异常:Sql Select语句在Oracle中不使用双引号,sql,oracle,Sql,Oracle,我的表有一个名为select或NOT的列,或其他保留键 我尝试选择“select”列,但无法选择,因为oracle引发如下异常: select f.select from foo f. 无效的user.table.column或table.column或column规范 我的select语句如下所示: select f.select from foo f. 我在网上搜索,找到了公认的答案: 然后,我更改了我的查询:Select f.Select from foo f,但也会像这样
select f.select
from foo f.
无效的user.table.column或table.column或column规范
我的select语句如下所示:
select f.select
from foo f.
我在网上搜索,找到了公认的答案:
然后,我更改了我的查询:Select f.Select from foo f,但也会像这样抛出异常:
c、 选择:使标识符无效
如何在select或update、insert语句中使用select列
注:我正在使用pl/sql开发工具查询数据。这应该可以正常工作:
Select f."select" from foo f
试试看
在Oracle中引用标识符时,它们会区分大小写 因此,您可能必须编写以下内容:
select f."SELECT" from foo f
或者选择,或者以您实际编写列名的方式创建列选择的好主意。您还可以创建一个名为select的表。查询可以是select、update、insert、where from选择where from>where和insert=update;如果你给那些栏目起名,你将受到惩罚。除此之外,f.select应该适用于您,但以这种方式使用时,您的列名区分大小写。再一次,意识到你使用了一个保留字,但仍然这样做,我感到愤怒。@Florin Ghita:我不使用任何保留键,但我们的客户可能会使用它。我们正在为屏幕生成编写框架,可能最终用户会创建一个名为“选择”的列,我们必须选择表中的所有列。@Baris很酷,我只是开了个玩笑。我知道这可能是一种情况。假设您的客户希望表名长度超过30个字符?他们不能。没有解决办法。我知道我们应该保护我们的用户不受令人讨厌的实施细节的影响。但有时最好公开一些内部内容并对用户施加约束,前提是我们给予他们更多的回报。在这种情况下,作为放弃调用表select功能的交换,他们得到了一个更可靠、更健壮的框架,因为它更易于开发和维护。谢谢,它工作得很成功。@Baris-不客气。