在 Firebird 中如何创建二维 char 数组域
In Firebird How to create a two dimensional char array domain
如何创建二维字符数组域
例如:值
['ABC-12121212','1']
['ABC-12323233','2']
如果我在 table 字段或过程输入中使用此域,insert/select/update 语句是什么。
是CREATE DOMAIN TESTARRAY AS CHAR(14) [500:2];
吗?
我强烈建议避免在 Firebird 中使用数组。它们主要是 InterBase 之前 SQL 功能的遗留物,几乎无法用于 SQL 语言。
但是,对于声明数组域的语法,请参阅 documentation on domains:
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的数组,当然不是'没道理。如果您想要多维数组,请用逗号 (,
) 分隔边界。另请参阅 array type.
上的文档
换句话说,使用:
CREATE DOMAIN TESTARRAY AS CHAR(14) [500,2];
如何创建二维字符数组域 例如:值
['ABC-12121212','1']
['ABC-12323233','2']
如果我在 table 字段或过程输入中使用此域,insert/select/update 语句是什么。
是CREATE DOMAIN TESTARRAY AS CHAR(14) [500:2];
吗?
我强烈建议避免在 Firebird 中使用数组。它们主要是 InterBase 之前 SQL 功能的遗留物,几乎无法用于 SQL 语言。
但是,对于声明数组域的语法,请参阅 documentation on domains:
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的数组,当然不是'没道理。如果您想要多维数组,请用逗号 (,
) 分隔边界。另请参阅 array type.
换句话说,使用:
CREATE DOMAIN TESTARRAY AS CHAR(14) [500,2];