SELECT 语句字段列表中的参数 - 错误:数据类型未知

2023-12-13

我的 Firebird(嵌入式)数据库有问题。我想在 select 语句中设置一个参数值。例如:

SELECT name, surname, :string AS myText
FROM myTable

where :string是一个参数。 上面的代码在 SQLite 中运行,结果是(当参数为“abcdef”时):

+------+---------+---------+
|name  |surname  |myText   |
+------+---------+---------+
|John  |Black    |abcdef   |
+------+---------+---------+
|Thomas|Young    |abcdef   |
+------+---------+---------+
|...   |...      |abcdef   |
+------+---------+---------+
|nameX |surnameY |abcdef   |
+------+---------+---------+

当我尝试执行此查询时,我收到以下消息:“在 SQL 语句的应用程序输入参数中发现错误。

Dynamic SQL Error.
SQL error code = -804.
Data type unknown.

问题是 Firebird 需要知道参数的数据类型。 IIRC 在 SQLite 中,一切都是字符串,但在 Firebird 中并非如此。

您需要显式转换参数以告知 Firebird 所需的类型,例如:

SELECT name, surname, cast(? as varchar(100)) AS myText
FROM myTable

哪里的?是一个位置参数。 Firebird 没有命名参数(过程中除外),但是如果您的访问库模拟命名参数,那么以下内容可能也可以工作:

SELECT name, surname, cast(:string as varchar(100)) AS myText
FROM myTable

在 select-clause 中转换参数的功能在旧版 Firebird 中不起作用(我相信它是在 Firebird 2.5 中引入的,但我不是 100% 确定)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SELECT 语句字段列表中的参数 - 错误:数据类型未知 的相关文章

  • 实体框架 Code First 和 Firebird - 外键名称问题

    我正在尝试创建带有 2 个表的新数据库 Districts and Databases 使用 EF 代码优先和这个简单的代码 using var db new FirebirdDBContext connectionString db Da
  • 基于C#列表而不是过滤表过滤sql

    假设我有一个包含以下数据的表 现在我想按主键部门和号码进行过滤 我有一个必须在代码中过滤的部门和号码组合的列表 在我看来 我会创建一个连接 结果如下 select from employee e inner join dynamicTabl
  • Firebird嵌入式安装问题:无法确定库

    我一直在编写一个打开 Firebird 数据库的小型 Python 应用程序 为了实现这个目标 我使用 Firebird 嵌入式 2 5 7 27050 64 位 不过 每当我尝试使用 Python 连接到 DB 文件时 都会收到以下错误
  • 从执行块中选择?

    是否可以从执行块结果中进行选择 我想从中执行一些操作 求和等 select t1 from execute block returns OUT VALUE integer as begin suspend end t1 or with t1
  • Firebird 交易计数超出

    我们有一个运行 Firebird 数据库的实现 但出现以下错误 超出实施限制 超出交易计数 执行备份和恢复以使数据库再次可操作 我们知道如何通过使数据库只读 执行备份和恢复以及再次读写来解决此问题 但是我们不太确定导致此问题的原因 我感觉交
  • dbExpress/未指定键

    我正在开发一个数据库程序 使用 dbExpress 组件 Delphi 7 通过以下组件从数据库检索数据 TSQLDataSet gt TDataSetProvider gt TClientDataSet gt TDatasource gt
  • 使用 FireDac (Delphi) 在 Firebird 中创建数据库

    我最近从 AnyDac 更改为 FireDac 8 0 5 3365 我们正在运行 Delphi 2006 当我使用该组件的 AnyDac 版本时 我可以通过执行以下操作来创建一个新数据库 设置我的连接 fConnection LoginP
  • Firedac select 与 Firebird 一起使用不返回任何记录

    您好 我正在使用 Firebird 2 5 作为数据库与 Firedac Delphi Seattle 合作 当我使用 TFDQuery 运行此查询时 没有返回任何记录 SELECT ID FROM USERS WHERE PWD H 数据
  • Java 中 Firebird 和 HSQLDB 之间的选择

    我想用 Java 编写一个小型 5 6 个表 桌面应用程序 我想使用 Firebird 2 1 数据库 但我用谷歌搜索并看到了 HSQLDB 我想在 Firebird 和 hsqldb 之间做出决定 那么我必须使用哪个数据库 Firebir
  • 火鸟远程备份

    我想备份 firebird 数据库 我正在使用 gbak exe 实用程序 效果很好 但是 当我想从远程计算机进行备份时 备份文件存储在服务器文件系统上 有没有办法强制 gbak 实用程序下载备份文件 Thanks 备份存储在 Firebi
  • 如何查找哪个表列对应于 Firebird 数据库中的约束?

    我有一个旧版 Firebird 版本 2 5 2 数据库 并使用 FlameRobin 版本 0 0 2 1851 来检查它 我已在 RDB RELATION CONSTRAINTS 表上运行以下查询来搜索名为 INTEG 172 的约束
  • 如何在firebird sql语句中使用非ascii字符串文字?

    我想在 firebird sql 查询中使用非 ascii 字符串文字 所以我用了火焰知更鸟首先看看它是否有效 我用过这样的东西 SELECT NAME FROM TABLE1 WHERE NAME 我也尝试过 SELECT NAME FR
  • Django-firebird 无法工作

    我下载了该文件夹并将其放入C Python27 Lib site packages django contrib gis db backends firebird 但是当我使用它时 给我一个 error django core except
  • 当在 Node.js 中从 firebird 中选择时,未知值

    我是火鸟的新人 我试图从数据库中获取名称 但它返回
  • 在 Macos 上编译 PHP-7.4 的 firebird 驱动程序时出现问题

    我一直在尝试在 Macos 上安装 编译 php7 4 的 php firebird 驱动程序 但到目前为止还没有成功 驱动程序存储库中存在一个未解决的问题 但在帮助方面没有太多进展 https github com FirebirdSQL
  • Firebird 中的表可以重命名吗?

    是否可以在 Firebird 中重命名表 或者我应该创建一个新表 然后使用插入移动数据 显然不是 您必须创建一个新表 复制旧值 或者创建一个具有与原始表相同的预期名称的视图 See http www firebirdfaq org faq3
  • 如何测量 Firebird 2.1 数据库上 blob 占用的空间量?

    我有一个使用 Firebird 2 1 的生产数据库 我需要找出每个表 包括 blob 使用了多少空间 blob 部分是棘手的部分 因为标准统计报告未涵盖它 我无法轻松访问服务器桌面 因此安装 UDF 等并不是一个好的解决方案 我怎样才能轻
  • 字段名称来自表 1 上的 ID,但来自其他表上的名称

    这是一个 Firebird 数据库 第一张表 联系人 Company ID 职位名称 第二个表 Client id 公司名称 在联系人中 我希望 job title 字段包含 co name client id 和 company id 相
  • FirebirdSql 中参数的正确使用

    我想知道是否有人可以提供以下帮助 using FbConnection conn new FbConnection ConnectionString conn Open FbCommand command1 new FbCommand SE
  • Firebird 和 Android JDBC 驱动程序

    火鸟有问题 我从未与 DB 合作过 服务器 firebird 1 5 上的数据库 添加库 firebird full 2 2 4到 libs 文件夹 将其添加到 Gradle implementation fileTree libs 将其添

随机推荐