IRIS® 数据平台提供了用于登录数据库和开始使用的默认用户名和密码。默认用户名为“_SYSTEM
”(大写),密码为“sys
”。
执行大多数 SQL操作都会发出SQLCODE
值。发出的SQLCODE
值为0
、100
和负整数值。
SQLCODE=0
表示SQL操作成功完成。对于SELECT
语句,这通常意味着从表中成功检索数据。但是,如果SELECT
执行聚合操作(例如:SELECT SUM(Myfield)
),则聚合操作成功,即使myfield
中没有数据,也会发出SQLCODE=0
;在这种情况下,SUM
返回NULL
,%ROWCOUNT=1
。SQLCODE=100
表示SQL操作成功,但没有找到可操作的数据。发生这种情况的原因有很多。对于SELECT
,这些包括:指定表不包含数据;表不包含满足查询条件的数据;或者行检索已到达表的最后一行。对于UPDATE
或DELETE
,它们包括:指定的表不包含数据;或者表不包含满足WHERE
子句条件的数据行。在这些情况下,%ROWCOUNT=0
。SQLCODE=-n
表示错误。负整数值指定发生的错误类型。SQLCODE=-400
是通用的致命错误代码。字段约束指定管理字段允许的数据值的规则。一个字段可能有以下约束:
NOT NULL
非空:必须在每条记录中为该字段指定值(可接受空字符串)。UNIQUE
唯一:如果在记录中为该字段指定值,则该值必须是唯一值(可接受的空字符串)。但是,可以为该字段创建多个没有值(NULL)的记录。DEFAULT
默认值:必须指定一个值,否则 IRIS会为每个记录中的此字段提供一个默认值(接受空字符串)。默认值可以是NULL、空字符串或适用于该数据类型的任何其他值。UNIQUE NOT NULL
:必须在每条记录中为该字段指定唯一的值(可接受一个空字符串)。可用作主键。DEFAULT NOT NULL
:必须指定一个值,否 IRIS会为每个记录中的此字段提供一个默认值(可接受的空字符串)。UNIQUE DEFAULT
唯一默认值:不推荐-必须指定唯一值,否则 IRIS会为每个记录中的此字段提供一个默认值(一个可接受的空字符串)。缺省值可以是NULL
、空字符串或适用于该数据类型的任何其他值。仅当缺省值是唯一生成的值(例如,CURRENT_TIMESTAMP
)时使用,或者如果缺省值仅使用一次。UNIQUE DEFAULT NOT NULL
:不建议-必须指定唯一的值,否则 IRIS会为每个记录中的此字段提供一个默认值(一个可接受的空字符串)。缺省值可以是空字符串或适用于该数据类型的任何其他值;它不能为空。仅当缺省值是唯一生成的值(例如,CURRENT_TIMESTAMP
)时使用,或者如果缺省值仅使用一次。可用作主键。IDENTITY
: IRIS为每个记录中的该字段提供唯一的、系统生成的、不可修改的整数值。忽略其他字段约束关键字。可用作主键。数据值必须适合该字段的数据类型。空字符串不是数值字段的可接受值。
SQL保留字列表。
%AFTERHAVING | %ALLINDEX | %ALPHAUP | %ALTER | %BEGTRANS |
%CHECKPRIV | %CLASSNAME | %CLASSPARAMETER | %DBUGFULL | %DELDATA |
%DESCRIPTION | %EXACT | %EXTERNAL | %FILE | %FIRSTTABLE | %FLATTEN |
%FOREACH | %FULL | %ID | %IDADDED | %IGNOREINDEX | %IGNOREINDICES |
%INLIST | %INORDER | %INTERNAL | %INTEXT | %INTRANS | %INTRANSACTION |
%KEY | %MATCHES | %MCODE | %MERGE | %MINUS | %MVR | %NOCHECK |
%NODELDATA | %NOFLATTEN | %NOFPLAN | %NOINDEX | %NOLOCK |
%NOMERGE | %NOPARALLEL | %NOREDUCE | %NORUNTIME | %NOSVSO | %NOTOPOPT |
%NOTRIGGER | %NOUNIONOROPT | %NUMROWS | %ODBCIN | %ODBCOUT |
%PARALLEL | %PLUS | %PROFILE | %PROFILE_ALL | %PUBLICROWID | %ROUTINE |
%ROWCOUNT | %RUNTIMEIN | %RUNTIMEOUT | %STARTSWITH |
%STARTTABLE | %SQLSTRING | %SQLUPPER | %STRING | %TABLENAME |
%TRUNCATE | %UPPER | %VALUE | %VID
ABSOLUTE | ADD | ALL | ALLOCATE | ALTER | AND | ANY | ARE | AS |
ASC | ASSERTION | AT | AUTHORIZATION | AVG | BEGIN | BETWEEN |
BIT | BIT_LENGTH | BOTH | BY | CASCADE | CASE | CAST |
CHAR | CHARACTER | CHARACTER_LENGTH | CHAR_LENGTH |
CHECK | CLOSE | COALESCE | COLLATE | COMMIT | CONNECT |
CONNECTION | CONSTRAINT | CONSTRAINTS | CONTINUE | CONVERT |
CORRESPONDING | COUNT | CREATE | CROSS | CURRENT |
CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP |
CURRENT_USER | CURSOR | DATE | DEALLOCATE | DEC | DECIMAL |
DECLARE | DEFAULT | DEFERRABLE | DEFERRED | DELETE | DESC |
DESCRIBE | DESCRIPTOR | DIAGNOSTICS | DISCONNECT | DISTINCT |
DOMAIN | DOUBLE | DROP | ELSE | END | ENDEXEC | ESCAPE | EXCEPT |
EXCEPTION | EXEC | EXECUTE | EXISTS | EXTERNAL | EXTRACT |
FALSE | FETCH | FIRST | FLOAT | FOR | FOREIGN | FOUND | FROM | FULL |
GET | GLOBAL | GO | GOTO | GRANT | GROUP | HAVING | HOUR |
IDENTITY | IMMEDIATE | IN | INDICATOR | INITIALLY |
INNER | INPUT | INSENSITIVE | INSERT | INT | INTEGER | INTERSECT |
INTERVAL | INTO | IS | ISOLATION | JOIN | LANGUAGE | LAST |
LEADING | LEFT | LEVEL | LIKE | LOCAL | LOWER | MATCH | MAX | MIN |
MINUTE | MODULE | NAMES | NATIONAL | NATURAL | NCHAR |
NEXT | NO | NOT | NULL | NULLIF | NUMERIC | OCTET_LENGTH | OF | ON |
ONLY | OPEN | OPTION | OR | OUTER | OUTPUT | OVERLAPS |
PAD | PARTIAL | PREPARE | PRESERVE | PRIMARY | PRIOR | PRIVILEGES |
PROCEDURE | PUBLIC | READ | REAL | REFERENCES | RELATIVE |
RESTRICT | REVOKE | RIGHT | ROLE | ROLLBACK | ROWS |
SCHEMA | SCROLL | SECOND | SECTION | SELECT | SESSION_USER |
SET | SHARD | SMALLINT | SOME | SPACE | SQLERROR | SQLSTATE |
STATISTICS | SUBSTRING | SUM | SYSDATE | SYSTEM_USER | TABLE |
TEMPORARY | THEN | TIME | TIMEZONE_HOUR | TIMEZONE_MINUTE |
TO | TOP | TRAILING | TRANSACTION | TRIM | TRUE | UNION | UNIQUE |
UPDATE | UPPER | USER | USING | VALUES | VARCHAR | VARYING | WHEN |
WHENEVER | WHERE | WITH | WORK | WRITE
在SQL中,某些字是保留的。不能将SQL保留字用作SQL标识符(如表、列、AS别名或其他实体的名称),除非:
"word"
)分隔,并且支持分隔的标识符。该列表仅包含在此意义上保留的那些单词;它不包含所有SQL关键字。上面列出的几个单词以"%"
字符开头,表示它们是 SQL专有扩展关键字。通常,不建议使用以"%"
开头的单词作为表名和列名等标识符,因为将来可能会添加新的 SQL扩展关键字。
可以通过调用IsReserve vedWord()
方法来检查某个字是否为SQL保留字,如下例所示。将保留字指定为引号字符串;保留字不区分大小写。$SYSTEM.SQL.IsReserve vedWord()
返回布尔值。
/// d ##class(PHA.TEST.SQLFunction).ReservedWord()
ClassMethod ReservedWord()
{
w !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("VARCHAR")
w !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("varchar")
w !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("VarChar")
w !,"Reserved?: ",$SYSTEM.SQL.IsReservedWord("FRED")
}
DHC-APP> d ##class(PHA.TEST.SQLFunction).ReservedWord()
Reserved?: 1
Reserved?: 1
Reserved?: 1
Reserved?: 0
此方法也可以作为存储过程从ODBC或JDBC调用:%SYSTEM.SQL_IsReservedWord("nnnn")
。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。