当前位置: 首页 > 面试题库 >

firebird isql:“此数据库中没有表XXXX”。

阚英武
2023-03-14
问题内容

我正在尝试从Firebird 2.5 SQL数据库中提取数据以进行迁移。数据是通过嵌入了Firebird 2.5数据库的软件在很长一段时间内建立的-
该软件公司在允许以易于迁移的形式访问我们的数据方面没有帮助…

通过更改security2.fdb文件,我可以isql使用管理员用户名访问数据库,SYSDBA并可以列出数据库中的表,但是对单个表的任何进一步访问都会抛出以下消息:“此数据库中没有表XXXX”

这是Windows命令提示符的示例

SQL> show tables;
        ....
        ....
        Customer
        ....
SQL> show table customer;
There is no table CUSTOMER in this database

我怀疑对单个表的访问是受控制的,但是,即使有可能,也无法解决如何重新获得访问的方法。


问题答案:

默认情况下,Firebird(和大多数其他数据库)中的对象名称不区分大小写,但有一个局限性:如果创建或引用不带引号的表(或其他对象)名称,则实际上将其视为大写形式。仅当对象名称用引号引起来时,它才区分大小写并按原样引用。此行为在SQL标准中指定(请参见SQL:2011
Foundation, 5.2 _以及 _5.4名称和标识符 )。

这意味着customerCustomerCUSTOMERCuStOmEr"CUSTOMER"所有参考同一个表,即:CUSTOMER

创建表"Customer"(注意引号)时,该表以的形式存储在元数据中,Customer但只能将其引用为"Customer",因为未引用的对象名称不区分大小写,Customer因此仍将使用引用CUSTOMER

您尝试使用显示表格

show table Customer;

注意错误消息中CUSTOMER的大写使用:

该数据库中没有表 CUSTOMER

showtablesshows的输出中有一个表Customer(而不是CUSTOMER),因此您需要将其引用为"Customer"。您需要使用:

show table "Customer";


 类似资料:
  • 问题内容: 我必须在设计糟糕的旧数据库中应用JPA。不幸的是无法更改它。幸运的是,仅用于只读访问。 我发现的最奇怪的事情之一是没有联接(或中间)表的“多对多”关系。这是表结构的简化: ACCESS_GROUP列可以在两个表中重复 一位用户可以与N个访问相关 一个访问可以与N个用户相关 必须按照这种方式“概念上”将此表与Java类映射: 但是我认为这是不可能的。您认为在JPA中访问此表并进行浏览的最

  • 问题内容: 我必须在设计糟糕的旧数据库中应用JPA。不幸的是无法更改它。幸运的是,仅用于只读访问。 我发现的最奇怪的事情之一是没有联接(或中间)表的“多对多”关系。这是表结构的简化: ACCESS_GROUP列可以在两个表中重复 一位用户可以与N个访问相关 一个访问可以与N个用户相关 必须按照这种方式“概念上”将此表与Java类映射: 但是我认为这是不可能的。您认为在JPA中访问此表并浏览它们的最

  • 问题内容: 如何使用查询获取SQL Server数据库中所有表的列表。我的意图是将其动态显示在网页上。 问题答案: 尝试: 这应该给您您想要的。然后,您需要从网页中调用它,以所需格式显示。 您可能要看: 如何使用C#在组合框中从数据库获取所有表的名称 可能会帮助您完成您想做的事情。 另外-您可能想看一下SQL Server:我应该在sys表上使用information_schema表吗? 用于sy

  • 问题内容: 在此链接中,我仍然存在相同的问题。因此,我使用了该方法。这是代码: 这里是我去掉表格和并转化按钮进入我的。所以形式是: 这是我的文件,在我的项目中,我有很长的代码用于不同的提交按钮,但是我只会发布用于此AJAX函数的代码: 在控制台网络中,我具有以下值: 并且在控制台中没有错误。我一直看到警报:没有添加数据。 编辑 我得到了以下错误消息:insert_buy.php中未定义的selec

  • 由于某些奇怪的原因,数据库没有得到更新,我可以得到正确的数据(我检查了它),但是当我单击submit时,数据库没有得到更新。你能帮我查一下有没有什么东西丢了吗?注意:“---”只是出于安全考虑! ?

  • 问题内容: 是否有一条SQL命令将列出数据库中的所有表,并且该命令与提供程序无关(可在MSSQLServer,Oracle,MySQL上运行)? 问题答案: 最接近的选项是查询表。 它是标准SQL的一部分,但并非所有供应商都支持它。据我所知,唯一支持它的RDBMS供应商是: 的MySQL PostgreSQL的 微软SQL服务器2000年/ 2005年/ 2008年 一些品牌的数据库,例如Orac