第五十七章 索引关键字 - Unique
指定索引是否应强制唯一性。
用法
要指定IRIS应强制此索引所基于的属性具有唯一性,请使用以下语法:
Index name On property_expression_list [ Unique ];
否则,请省略此关键字或将该词放在该关键字之前。
详情
如果存在UNIQUE
关键字,则表示这是唯一索引。
由唯一索引索引的属性(或多个属性)被约束为在定义索引的类(表)的范围(所有对象的集合)内具有唯一值(即,没有两个实例可以具有相同的排序值)。
唯一索引不能也是位图索引。
示例
Index SSNIdx On SSN [ Unique ] ;
默认
如果省略此关键字,IRIS不会强制此索引所基于的属性具有唯一性。
第五十八章 方法关键字 - Abstract
指定这是否是抽象方法。
程序员可以在这里学习、分享、了解最新动态、成长,以及收获快乐!
1 磁盘空间不足的常见情形
1)Journal所在磁盘空间不足。造成这种情况的原因有多种,比如,Mirror中备机未处于宕机状态,因此主机保留了Journal文件。
2)数据库所在磁盘空间不足。比如,集成平台上Ensemble/Health Connect/IRIS for Health的消息从未清除过,导致消息数据库DAT文件不断增大,直至将磁盘空间用尽。
我们可以看到以上两种情形下,Mirror都帮不上忙,也就是说一旦问题出现,主机和备机都没有办法立即承担起业务系统的运行,
第1)种,备机可能在故障出现前就已经宕机很长一段时间而没被发现,备机的数据很可能已经与主机严重不一致。实际上,主机之所以保留了大量的journal文件没有删除,就是为了让备机同步数据时使用。
第2)种,虽然配置了Mirror,但是消息主库正常情况下都是镜像库,在一个健康的Mirror中,备机和主机的镜像库数据保持同步,镜像库大小应当是相同的,假设主备机的硬件配置相同(这也是我们推荐的方式)那么磁盘空间不足在备机上同样存在。
第十章 SQL命令 CREATE PROCEDURE(一)
创建作为SQL
存储过程公开的方法或查询。
第二十三章 SQL命令 CREATE USER
创建用户帐户。
大纲
CREATE USER user-name IDENTIFY BY password
CREATE USER user-name IDENTIFIED BY password
参数
user-name
- 要创建的用户的名称。名称是最多128
个字符的标识符。它可以包含Unicode
字母。用户名不区分大小写。
password
- 此用户的密码。密码必须至少为3
个字符,并且不能超过32
个字符。密码区分大小写。密码可以包含Unicode
字符。
描述
CREATE USER
命令使用指定的密码创建用户帐户。
第二十九章 SQL命令 DISTINCT
指定仅返回不同值的SELECT
子句。
大纲
SELECT [DISTINCT [BY (item {,item2})] ] | [ALL]
select-item {,select-item2}
参数
DISTINCT
- 可选-返回组合选择项值唯一的行。
DISTINCT BY (item {,item2})
- 可选-返回按(项)值唯一的行的选择项值。
ALL
- 可选-返回结果集中的所有行。默认设置。
描述
可选DISTINCT
子句出现在SELECT
关键字之后、可选TOP
子句和第一个SELECT-ITEM
之前。
第四十一章 SQL命令 DROP VIEW
删除视图
大纲
DROP VIEW view-name [CASCADE | RESTRICT]
参数
view-name
要删除的视图的名称。
视图名可以是限定的(schema.viewname
),也可以是非限定的(viewname
)。
非限定视图名接受默认模式名。
CASCADE RESTRICT
- 可选-指定CASCADE
关键字以删除引用view-name
的任何其他视图。如果有另一个视图引用view-name
,则指定RESTRITE
将发出SQLCODE-321
错误。默认值为限制。
描述
DROP VIEW
命令删除视图,但不删除基础表或数据。
第五十章 SQL命令 HAVING(一)
对一组数据值指定一个或多个限制性条件的SELECT
子句。
大纲
SELECT field
FROM table
GROUP BY field
HAVING condition-expression
SELECT aggregatefunc(field %AFTERHAVING)
FROM table
[GROUP BY field]
HAVING condition-expression
参数
condition-expression
- 由一个或多个布尔谓词组成的表达式,用于控制要检索哪些数据值。
描述
可选的HAVING
子句出现在FROM
子句、可选的WHERE
和GROUP BY
子句之后,可选的ORDER BY
子句之前。
第六十章 SQL命令 JOIN(二)
单向外部联接
IRIS支持单向外部联接:左外部联接和右外部联接。
使用标准的“inner”
联接时,当一个表的行链接到第二个表的行时,第一个表中找不到第二个表中对应行的行将从输出表中排除。
使用单向外联接时,即使第二个表中没有匹配项,第一个表中的所有行也会包括在输出表中。使用单向外连接,第一个表会从第二个表中取出相关信息,但不会因为第二个表中缺少匹配项而牺牲自己的行。
例如,如果查询首先列出Table1
并创建一个左外部联接,那么它应该能够看到Table1
中的所有行,即使它们在Table2
中没有对应的记录。
本文档介绍了 InterSystems 公钥基础设施(PKI),它可以在开发组织的安全策略中发挥重要作用。它提供有关公钥加密、证书颁发机构和 PKI 的信息。然后介绍一些与使用 InterSystems PKI 相关的初始任务。完成本指南后,您将有能力创建一个证书颁发机构 (CA),然后向 CA 客户端请求并接收证书。
虽然 InterSystems PKI 不用于生产系统,但您可以用它来熟悉 PKI 工具和安全基础设施。作为设计和探索过程的一部分,这对于创建全面的安全方法特别有帮助。
本指南使用 InterSystems IRIS®数据平台的默认设置,这使您能够熟悉 PKI 的基本原理,而不必处理其他在执行实现时很重要的细节问题。有关数据库加密的完整文档,请参见 The InterSystems Public Key Infrastructure(《 InterSystems 公钥基础设施》)。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems开发者竞赛!
🏆 InterSystems开发者竞赛:安全 🏆
竞赛时间: 2021年11月15日-12月5日
奖金总额: $9,450!
.png)
第八十二章 SQL命令 UPDATE(一)
为指定表中的指定列设置新值。
第九十章 SQL命令 WHERE CURRENT OF
使用游标指定当前行的UPDATE/DELETE子句。
大纲
WHERE CURRENT OF cursor
参数
cursor
- 指定在光标的当前位置执行操作,光标是指向表的光标。
描述
WHERE CURRENT OF
子句可用于基于游标的嵌入式SQL UPDATE
或DELETE
语句,以指定位于要更新或删除记录上的游标。
例如:
&sql(DELETE FROM Sample.Employees WHERE CURRENT OF EmployeeCursor)
删除最后一个FETCH
命令从“EmployeeCursor”
游标获得的行。
第十二章 SQL谓词 %INSET
将一个值匹配到一组生成的值。
第二十章 SQL谓词 %STARTSWITH(二)
首尾空格
在大多数情况下,%STARTSWITH
将前导空格视为与任何其他字符相同的字符。
例如,%STARTSWITH ' B'
可用于选择只有一个前导空白后跟字母B
的字段值。然而,只包含空白的子字符串不能选择前导空白;
它选择非空值。
尾随空格的%STARTSWITH
行为取决于数据类型和排序规则类型。
%STARTSWITH
忽略定义为SQLUPPER
的字符串子串的尾随空格。
%STARTSWITH
不会忽略数字、日期或列表子字符串中的尾随空格。
在下面的示例中,%STARTSWITH
将结果集限制为以“M”
开头的名称。
因为Name
是一个SQLUPPER
字符串数据类型,子字符串的末尾空格将被忽略:
[toc]
第九章 SQL聚合函数 MIN
返回指定列中的最小数据值的聚合函数。
嘿,社区。
这里是2021年度开发社区问题摘要。 让我们来看看InterSystems开发人员提出的最受欢迎的问题。
统计
✓ 2021年提出了980 个问题
✓ 社区总共提出了5,699 问题
最多浏览问题
许多使用InterSystems IRIS的用户在调试代码的时候习惯使用命令行的方式,比如运行一个函数查看输出或者查看代码运行过程中保存在global中的数据等等。
对于将 InterSystems IRIS 安装在 Windows 操作系统的用户,只需要点击右下角图标选择Terminal 就可以很方便的使用。
但是对于将其安装到 Linux 或者Docker 容器中的用户,要使用命令行却不那么方便,下面我将会介绍在我们 Openexchange 中的一个应用 -- Web Terminal。
也就是说可以在网页中直接执行Terminal中的命令。

或者查看SQL执行结果:
第四十二章 SQL函数 DATEADD
一个日期/时间函数,它返回一个时间戳,计算方法是在一个日期或时间戳中添加或减去若干日期部件单位(如小时或天)。
第五十一章 SQL函数 DECODE
计算给定表达式并返回指定值的函数。
大纲
DECODE(expr {,search,result}[,default])
参数
expr
- 要解码的表达式。
search
- 要与Expr进行比较的值。
result
- Expr
匹配搜索时返回的值。
default
- 可选-如果expr
与任何搜索都不匹配,则返回默认值。
描述
可以指定多个搜索和结果对,以逗号分隔。您可以指定一个默认值。DECODE
表达式(包括EXPR
、SEARCH
、RESULT
和DEFAULT
)中的最大参数数约为100
。搜索、结果和默认值可以从表达式派生。
第五十八章 SQL函数 FLOOR
数值函数,返回小于或等于给定数值表达式的最大整数。
大纲
FLOOR(numeric-expression)
{fn FLOOR(numeric-expression)}
参数
numeric-expression
- 下限要计算的数字。
FLOOR
返回与NUMERIC-EXPRESSION
相同的数据类型。
描述
FLOOR
返回小于或等于NUMERIC-EXPRESSION
的最接近的整数值。返回值的小数位数为0
。当numeric-expression
为空值、空字符串(‘’
)或非数字字符串时,FLOOR
返回NULL
。
请注意,Floor
可以作为ODBC标量函数(使用花括号语法)调用,也可以作为SQL常规函数调用。
第六十五章 SQL函数 %INTERNAL
返回逻辑格式表达式的格式转换函数。
大纲
%INTERNAL(expression)
%INTERNAL expression
参数
expression
- 要转换的表达式。
字段名、包含字段名的表达式,或返回可转换数据类型(如DATE
或%List
)中的值的函数。
描述
%INTERNAL
将表达式转换为逻辑格式,与当前选择模式(显示模式)无关。逻辑格式是数据的内存格式(对其执行操作的格式)。%INTERNAL
通常用于选择列表SELECT-ITEM
。
第七十二章 SQL函数 LAST_IDENTITY
返回最后插入、更新、删除或读取的行的标识的标量函数。
大纲
LAST_IDENTITY()
描述
LAST_IDENTITY
函数返回%ROWID
局部变量值。在嵌入式SQL
或ODBC
中将%ROWID
局部变量设置为一个值。动态SQL、SQL Shell或管理门户SQL界面未将%ROWID
局部变量设置为值。动态SQL改为设置%ROWID
对象属性。
LAST_IDENTITY
函数不接受任何参数。请注意,参数括号是必需的。
LAST_IDENTITY
返回受当前进程影响的最后一行的标识字段值。如果表没有标识字段,则返回受当前进程影响的最后一行的行ID(%ROWID
)。返回值为数据类型INTEGER
。
第八十章 SQL函数 $LIST(二)
示例
在以下嵌入式 SQL 示例中,两个 WRITE
语句都返回“Red”
,即列表中的第一个元素。第一个默认写入第一个元素,第二个写入第一个元素,因为位置参数设置为 1
:
第八十七章 SQL函数 $LISTSAME
比较两个列表并返回布尔值的列表函数。
大纲
$LISTSAME(list1,list2)
参数
list1
- 计算结果为有效列表的表达式。
list2
- 计算结果为有效列表的表达式。
描述
$LISTSAME
比较两个列表的内容,如果列表相同则返回 1
。如果列表不相同,则 $LISTSAME
返回 0
。$LISTSAME
逐个元素地比较两个列表。对于两个相同的列表,它们必须包含相同数量的元素,并且 list1
中的每个元素必须与 list2
中的相应元素匹配。
第九十四章 SQL函数 %MINUS
将数字转换为规范整理格式,然后反转符号的整理函数。
大纲
%MINUS(expression)
%MINUS expression
参数
expression
- 表达式,可以是列名、数字或字符串文字、算术表达式或另一个函数的结果,其中基础数据类型可以表示为任何字符类型。
描述
%MINUS
将数字或数字字符串转换为规范形式,反转符号,然后以数字排序规则返回这些表达式值。
%MINUS
和 %PLUS
在功能上是相同的,只是 %MINUS
反转了符号。它为解析为正数的任何数字添加减号前缀,并从解析为负数的任何数字中删除减号。零从不签名。
第九十九章 SQL函数 NOW
返回当前本地日期和时间的日期/时间函数。
大纲
NOW()
{fn NOW}
{fn NOW()}
描述
NOW
不接受任何参数。参数括号对于 ODBC
标量语法是可选的;它们对于 SQL 标准函数语法是必需的。
NOW
以时间戳的形式返回该时区的当前本地日期和时间;它会根据本地时间变体进行调整,例如夏令时。
NOW
可以返回 %TimeStamp
数据类型格式 (yyyy-mm-dd hh:mm:ss.ffff
) 或 %PosixTime
数据类型格式(编码的 64
位有符号整数)的时间戳。以下规则确定返回的时间戳格式:
第107章 SQL函数 $PIECE
返回由分隔符标识的子字符串的字符串函数。
第114章 SQL函数 RADIANS
将度数转换为弧度的数值函数。
大纲
RADIANS(numeric-expression)
{fn RADIANS(numeric-expression)}
参数
numeric-expression
- 以度为单位的角度度量。解析为数值的表达式。
RADIANS
返回 NUMERIC
或 DOUBLE
数据类型。如果 numeric-expression
是数据类型 DOUBLE
,RADIANS
返回 DOUBLE
;否则,它返回 NUMERIC
。
RADIANS
可以指定为标准标量函数或带有大括号语法的 ODBC 标量函数。
大家应该都已经很熟悉 InterSystems Ensemble(一个集成和应用程序开发平台),每个人都知道 Ensemble Workflow 子系统是什么以及它对于自动化人类交互的作用。 对于那些不了解 Ensemble Workflow 的人,我将简要介绍它的功能(已经熟悉的朋友可以直接跳过这一部分并学习如何使用 Angular.js 中的 Workflow 接口)。
InterSystems Ensemble
InterSystems Ensemble 是一个集成和应用程序开发平台,旨在集成异构系统、自动化业务流程和创建新的复杂应用程序,这些应用程序通过新的业务逻辑或新的用户界面增强集成应用程序的功能:EAI、SOA、BPM、BAM 甚至 BI (感谢 InterSystems DeepSee:一种用于开发分析应用程序的内置技术)。
Ensemble 具有以下关键功能: