- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Firebird 和 InterBase 以 BLR(标记化)格式保存存储过程和触发器的编译形式。
但是我不太了解BLR的结构。
字段大小是 BLR 的一部分吗?
当存储过程包含两个字段(源和目标)时,我会遇到一些问题吗?稍后我将更改这两个字段的大小?
例如,它们是 varchar(50)
长的,但现在我通过系统表更新将它们更改为 varchar(100)
。会发生什么?它只会复制 50 个字符,还是全部 (100) 个字符?
或者 BLR 是否仅包含对象链接(表和字段)?
我会尝试用“伪”代码来演示:
begin
for select comp_id, comp_name from companies where ...
into :ci, :cn
do begin
-- somehow we're adding this to another table
insert into new_clients (id, name) values (:ci, :cn);
end
end;
这可能是触发器或存储过程。
Comp_name
和 new_clients.name
最初是 varchar(50)
。varchar(150)
。varchar(150)
。然后会发生什么?
问题是一样的:BLR 是否包含相关字段的大小?
最佳答案
首先,在ISQL中可以看到一个过程的BLR:
SQL> create or alter procedure p1 (i1 varchar(10), i2 varchar(20)) returns (o1 varchar(30)) as begin end!SQL> set blob all!SQL> commit!SQL> select rdb$procedure_blr from rdb$procedures where rdb$procedure_name = 'P1'!blr_version5,blr_begin, blr_message, 0, 4,0, blr_varying2, 0,0, 10,0, blr_short, 0, blr_varying2, 0,0, 20,0, blr_short, 0, blr_message, 1, 3,0, blr_varying2, 0,0, 30,0, blr_short, 0, blr_short, 0, blr_receive, 0, ...blr_eoc
其次,永远不要更改系统表。
第三,是的,你会有问题!这就是为什么没有 ALTER PROCEDURE PARAMETER
命令的原因。
关于stored-procedures - Firebird BLR 是否包含相关字段大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16133713/
Firebird 和 InterBase 以 BLR(标记化)格式保存存储过程和触发器的编译形式。 但是我不太了解BLR的结构。 字段大小是 BLR 的一部分吗? 当存储过程包含两个字段(源和目标)时
我正在编写 C 代码并为 PowerPC 架构编译它。我想告诉编译器将所有类似返回的指令替换为函数代码末尾的分支。这是由于一些奇怪的要求,我不能在这段代码中使用任何 return 来确保之后执行更多的
我在 C# 中使用 Firebird 2_5 数据库,在将数据插入 Firebird 数据库时出现此错误,请问如何解决此问题? "FirebirdSql.Data.FirebirdCliente.Fb
首先让我们提一下,我正在开发的一些程序已经在使用我尚未构建的其他程序中的数据库。 所以我尝试使用存储过程,下面是该过程的样子: ↑OK ↓VRDOK ↓BRDOK ↓ROBAID ↓CENA_BEZ_
我是一名优秀的程序员,十分优秀!