firebird - 在 Firebird 中如何创建二维 char 数组域
问题描述
如何创建二维字符数组域,例如:值
['ABC-12121212','1']
['ABC-12323233','2']
如果我在表字段或过程输入中使用此域,那么插入/选择/更新语句是什么。
是CREATE DOMAIN TESTARRAY AS CHAR(14) [500:2];
吗?
解决方案
我强烈建议避免在 Firebird 中使用数组。它们在很大程度上是 InterBase 的 pre-SQL 特性的保留,几乎不能从 SQL 语言中使用。
但是,有关声明数组域的语法,请参阅有关 domain 的文档:
CREATE DOMAIN name [AS] <datatype> [DEFAULT {<literal> | NULL | <context_var>}] [NOT NULL] [CHECK (<dom_condition>)] [COLLATE collation_name] <datatype> ::= {SMALLINT | INTEGER | BIGINT} [<array_dim>] | {FLOAT | DOUBLE PRECISION} [<array_dim>] | {DATE | TIME | TIMESTAMP} [<array_dim>] | {DECIMAL | NUMERIC} [(precision [, scale])] [<array_dim>] | {{CHAR | CHARACTER} [VARYING] | VARCHAR} [(size)] [<array_dim>] [CHARACTER SET charset_name] | {NCHAR | NATIONAL {CHARACTER | CHAR}} [VARYING] [(size)] [<array_dim>] | BLOB [SUB_TYPE {subtype_num | subtype_name}] [SEGMENT SIZE seglen] [CHARACTER SET charset_name] | BLOB [(seglen [, subtype_num])] <array_dim> ::= '[' [m:]n [,[m:]n ...] ']'
m:n
指的是数组的下限和上限,所以表示500:2
下限为 500 上限为 2 的数组,这当然没有意义。如果您需要多维数组,则用逗号 ( ,
) 分隔边界。另请参阅有关数组类型的文档。
换句话说,使用:
CREATE DOMAIN TESTARRAY AS CHAR(14) [500,2];
推荐阅读
- javascript - 如何在 iPhone 中停止滚动 - 13 设备 - 基于 Cordova 的应用程序
- java - Spring H2 数据库 - 无法初始化和持久化数据
- vue.js - Vue + Axios 处理来自服务器的所有请求错误
- javascript - 当 span.class 存在时,用 JS 显示按钮
- android - flutter WebViewController如何添加header
- c# - 事务是否会取消方法中的操作
- .net - Streams、ReadOnlyStreams 和内存流量
- java - 在 weblogic 控制台中停止服务器时调用什么命令?
- python - 如何同步两个不同长度的数组?
- php - 对多维数组第四级中的数据进行分组和求和