问题标签 [firebird-psql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - Firebird 程序中的错误
我必须做一个查询才能得到一个参数(我需要一个“1”),但是这个参数可以在不同的单元格中,例如:
我必须捕获,然后,如果它等于一个,则执行其他查询以获得我想要的。我尝试用这段代码做一个程序:
执行查询时出现此错误:
我尝试删除 FOR 和 Do 的工作,出现此错误:
有人可以帮助我完成此程序或向我解释失败的原因吗?
sql - 协助 Firebird SQL 存储过程
我有一个非常简单的存储过程:
我收到一个错误:
代币未知第 22 行第 1 列。
第 22 行第 1 列是指代码的最后一行。
在某处我犯了一个非常简单的语法错误,由于某种原因我无法追踪它。任何帮助将不胜感激。
sql - 解决存储过程中的单例错误
我在 Firebird SQL 中有以下存储过程:
当我运行以下查询时:
我收到以下错误:
程序“ SP_REPORT_USD
”行中的单选中的多行:15,COL:1
第 15 行第 1 行是我的 select 语句在执行存储过程时开始的地方。
我确实测试了以下查询:
结果符合预期。所以我知道我的查询逻辑是正确的,我只是对存储过程做错了。
任何帮助将不胜感激。
sql - “列不属于引用表”为什么?
此代码应该删除一个相册,但我不知道为什么它仍然不起作用
firebird - 自主事务中的 Firebird 2.5 异常处理
我在我们的一个 Firebird 存储过程中遇到了性能下降,我不知道为什么。我在提到的 SP 中找到了以下代码:
我在状态为 3 的表中看到几十条记录,RDB$TRANSACTIONS
在 MON$TRANSACTIONS 表中没有相关记录。
问题是,如果插入失败,自治事务会被回滚,还是“当任何时候”阻止回滚并且会有一个打开的事务?我可以只删除异常处理,因此它会自动回滚而不引发异常并阻塞其余代码吗?
sql - Firebird 2.5 提交/回滚(使用自主事务)循环
我必须在存储过程的循环中处理记录,例如:
问题是当执行process_one_record()
失败(产生任何类型的异常)时,整个修改集将从调用代码中回滚。
目标是处理所有可能的记录,此时我并不关心是否无法处理某些记录,这些失败的记录无论如何都会记录在日志表中(使用自治事务)。
我正在考虑process_one_record()
在带有when any do (dummy code)
子句的自治事务块中调用存储过程。但是,我认为这行不通,因为该失败的事务不会被回滚,而是被提交(参考这个主题:Firebird 2.5 exception handling in automatic transaction)。
有人可以指出我如何解决这个问题的正确方向吗?
sql - 插入空值
我正在尝试将双精度 (ilosc_zlec) 值插入到表 (M_ZAMWLASNEPOZ) 中。首先,我使用 select 语句来获取值。运行这部分代码后,我可以在变量 ( 39 ) 中看到正确的值。接下来,我尝试在表中插入选定的值,其中大多数都被插入,但字段 ILOSC 应该成为 ilosc_zlec 的值显示为 NULL。ILOSC、ilosc_zlec 都是双精度变量。
sql - 将数据类型从 varchar 更改为 integer
我正在尝试在表中找到第一个空闲号码 (SYMBOL_ZAM) 并添加 1,以便为我的新记录创建一个唯一的号码。首先,我将最后添加的数字选择到 varchar 变量(OST_SZUK_NR)中,然后我试图使字段 NOWY_SYMB_ZAM 的值与 OST_SZUK_NR 相同,但将其声明为整数,因此我可以添加 1,但它不起作用. 有什么技巧可以让我完成这项工作吗?
firebird - 创建 PSQL 变量时出现错误:“在不允许的过程上使用 GRANT OPTION”
我们正在为 interbase-firebird 和 Firebird 3.0.5 使用 SQL 管理器。我们正在创建一个程序并且工作正常。
但是,从我们将 psql 变量添加到过程中的那一刻起,我们得到以下错误。当我们删除变量时,可以再次执行该过程。在已添加的变量下方(也请参见下图)。
错误消息说:
不允许在程序上使用授予选项。
详细的错误信息说:
授予对“文本”的引用以使用授予选项来处理 GETTEXTCAINING;
因此,似乎通过使用 psql 变量,添加了从表“TEXT”到存储过程的引用,这显然是不允许的。
所以,这听起来像是一个许可的事情。但是,当我们授予该过程的权限时,参考区域是灰色的,因此我们无法授予权限,就像我们在执行级别所做的那样。
如果我们查看表格文本上的权限级别,则会给出参考权限,但是不可能添加“具有授予的权限”(手形图标)。
我不知道问题是什么以及如何解决它,有什么想法吗?
更新 27/02/2012 如果我将相同的代码添加到执行块中,效果很好。有任何想法吗?
下面是错误的一些附加打印屏幕。
sql - 如何在 Firebird 中使用声明语句嵌套匿名块?
在 Firebird 中,DECLARE
语句可以列在EXECUTE BLOCK
语句的开头:
在一个块中,不可能有更多DECLARE
的语句,即所有变量都是全局范围的,对于整个块。是否有任何解决方法可以在 Firebird 中仅为嵌套块的范围声明局部变量?嵌套EXECUTE BLOCK
调用是不可能的: