亲爱的社区开发者们,
我们的社区正在日渐壮大!我们现在已经有了英语、西语、葡语、日语和中文社区,不论你在哪个社区发帖或评论,都可以获得Global Master倡导中心的积分,而最重要的是,在中文社区,你会获得更高积分!
亲爱的社区开发者们,
我们的社区正在日渐壮大!我们现在已经有了英语、西语、葡语、日语和中文社区,不论你在哪个社区发帖或评论,都可以获得Global Master倡导中心的积分,而最重要的是,在中文社区,你会获得更高积分!
用 2019 版IRIS怎么实现大数据量表的分页查询?比如表里有200万条数据。
可以对现有的表使用SQL语句,也可以对相应的持久化类使用ObjectScript操作来修改InterSystems IRIS®数据平台数据库的内容。 不能修改定义为只读的持久类(表)。
使用SQL命令为维护数据的完整性提供了自动支持。 SQL命令是一个原子操作(全部或没有)。 如果表上定义了索引,SQL将自动更新它们以反映更改。 如果定义了任何数据或引用完整性约束,SQL将自动执行它们。 如果有任何已定义的触发器,执行这些操作将拉动相应的触发器。
可以使用SQL语句或设置和保存持久化类属性将数据插入表中。
INSERT语句将一条新记录插入SQL表中。
可以插入一条记录或多条记录。
下面的示例插入一条记录。 它是插入单个记录的几种可用语法形式之一:
INSERT INTO MyApp.Person
(Name,HairColor)
VALUES ('Fred Rogers','Black')
以下示例通过查询现有表中的数据插入多条记录:
INSERT INTO MyApp.Person
(Name,HairColor)
SELECT Name,Haircolor FROM Sample.Person WHERE Haircolor IS NOT NULL
还可以发出INSERT或UPDATE语句。
新冠肺炎疫情大流行史无前例地推动着医疗数字化发展,这一进程不仅影响了医疗服务的提供方式,更带来深刻的行业服务模式变革。经济学人邀请了来自数据技术提供商InterSystems、初级医疗服务提供商Babylon、咨询服务提供商埃森哲、数字化医疗解决方案提供商Kaiser Permanente的专家,从各自的领域和观察出发解读多个热点话题。
亲爱的社区用户,您好!
我们在 Global Masters上推出了商业服务奖励计划,这是一个绝佳的契机,您可以在开发者社区和我们的社交媒体上宣传贵公司的应用、解决方案和服务,甚至为您的 OEX 应用兑换 Google AdWords 推广!
大家好!InterSystems Global Masters 倡导中心与开发者社区紧密联系并不是秘密。 为开发者社区做出任何贡献都会带来 Global Masters 积分。 所以, 我们准备了一份关于如何在 Global Masters 以最佳方式获得积分的简短指南。
亲爱的社区开发者,
我们诚挚邀请您参加 InterSystems编程大奖赛获奖成员线上见面会!
时间: 周五(2021年3月12日)-22:00(北京时间)
在此次线上见面会,您可以:
线上见面会参与成员:
您还将有机会在一个特别的网络研讨会上向我们的开发人员提出任何问题。
欢迎您参加线上见面会!
现在就来报名吧!
要在表之间强制执行引用完整性,可以定义外键。修改包含外键约束的表时,将检查外键约束。
有几种方法可以在InterSystems SQL中定义外键:
CREATE TABLE或ALTER TABLE命令添加外键。可以使用ALTER TABLE命令删除外键。用作外键引用的RowID字段必须是公共的。引用隐藏的RowID?有关如何使用公用(或专用)RowID字段定义表的信息。
一个表(类)的外键最大数目为400。
外键约束可以指定更新或删除时的引用操作。
在CREATE TABLE reference action子句中描述了使用DDL定义这个引用操作。
在类定义引用的OnDelete和OnUpdate外键关键字中定义了一个持久化类来定义这个引用操作,该类投射到一个表。
在创建分片表时,这些引用操作必须设置为无操作。
默认情况下,InterSystemsIRIS®数据平台对INSERT,UPDATE和DELETE操作执行外键引用完整性检查。如果该操作将违反参照完整性,则不会执行;该操作将发出SQLCODE -121,-122,-123或-124错误。
亲爱的开发者,
最近我们收到很多类似“如何成为一个活跃(Active)、有贡献值的成员”的问题。
条件很简单!
视图是一种虚拟表,由执行时通过SELECT语句或几个SELECT语句的UNION从一个或多个物理表中检索到的数据组成。 SELECT可以通过指定表或其他视图的任意组合来访问数据。因此,存储了视图的视图提供了物理表的所有灵活性和安全性特权。
InterSystemsIRIS®数据平台上的InterSystems SQL支持在视图上定义和执行查询的功能。
注意:不能对以只读方式安装的数据库中存储的数据创建视图。
无法在通过ODBC或JDBC网关连接链接的Informix表中存储的数据上创建视图。这是因为InterSystems IRIS查询转换对这种类型的查询使用FROM子句中的子查询。 Informix不支持FROM子句子查询。
可以通过几种方式定义视图:
CREATE VIEW命令(在DDL脚本中或通过JDBC或ODBC)。视图名称:不合格的视图名称是一个简单的标识符:MyView。合格的视图名称由两个简单的标识符组成,即模式名称和视图名称,以句点分隔:MySchema.MyView。视图名称和表名称遵循相同的命名约定,并对不合格的名称执行相同的架构名称解析。同一模式中的视图和表不能具有相同的名称。
可以使用$SYSTEM.SQL.ViewExists()方法确定视图名称是否已存在。
支持HL7 转FHIR,CDA 转FHIR,FHIR转HL7的云服务
亲爱的社区开发者们,
InterSystems 编程大奖赛 圆满结束!这是一场令人难以置信的竞赛,参与的应用程序和开发者数量创下了记录!
谢谢大家的参与!现在是时候宣布获奖者了!

让我们把掌声送给这些开发者们!
InterSystems编程大奖赛取得圆满成功,来自中文社区的两位参赛者获得项目奖励,项目简介如下。
可以使用标准DDL命令在InterSystems SQL中定义表:
InterSystems SQL中可用的DDL命令
ALTER命令 ALTER TABLE,ALTER VIEWCREATE 命令 CREATE TABLE,CREATE VIEW,CREATE INDEX,CREATE TRIGGERDROP 命令 DROP TABLE,DROP VIEW,DROP INDEX,DROP TRIGGER可以通过多种方式执行DDL命令,包括:
在ObjectScript方法或例程中,可以使用嵌入式SQL来调用DDL命令。
例如,以下方法创建一个Sample.Employee表:
/// d ##class(PHA.TEST.SQL).CreateTable()
ClassMethod CreateTable() As %String
{
&sql(CREATE TABLE Sample.Hi, my password is forgotten, but when I retrieve the password, the mailbox cannot receive the email, what should I do, I am anxious to log in, please reply as soon as possible, thanks!
InterSystems IRIS提供了两种方法来唯一标识表中的行:RowID和主键。
可选的主键是一个有意义的值,应用程序可以使用该值唯一地标识表中的行(例如,联接中的行)。主键可以是用户指定的数据字段,也可以是多个数据字段的组合。主键值必须是唯一的,但不必是整数值。 RowID是一个内部用于标识表中行的整数值。通常,主键是由应用程序生成的值,而RowID是由InterSystems IRIS生成的唯一整数值。
系统会自动创建一个主map,以使用RowID字段访问数据行。如果定义主键字段,系统将自动创建并维护主键索引。
显然,具有两个不同的字段和索引来标识行的双重性不一定是一件好事。可以通过以下两种方式之一解析为单个行标识符和索引:
IDKEY。
可以通过使用关键字PrimaryKey和IdKey在类定义中标识主键索引来实现这一点(如果为此目的设置了PKey is IdKey标志,也可以在DDL中实现这一点)。
这使得主键索引成为表的主映射。
因此,主键将被用作行的主要内部地址。
如果主键包含多个字段,或者主键值不是整数,那么这种方法的效率会较低。RowID整数作为应用程序使用的主键(例如,在joins中)。可以通过定义表(使用CREATE TABLE)或通过定义投影到表的持久类来创建表:
由于以下原因,这两个名字之间的对应关系可能不相同:
SqlTableName类关键字来提供不同的SQL表名。SQLUser;
初始默认包名为“User”。表、视图或存储过程名称可以是限定的(schema.name),也可以是限定的(name)。
InterSystems SQL支持以下算术运算符:
+ 加法操作符。
例如,17+7 = 24。
– 减法运算符。
例如,17-7等于10。
注意,这些字符中的一对是InterSystems SQL注释指示器。
因此,要指定两个或多个减法操作符或负号,必须使用空格或圆括号。
例如,17- -7或17-(-7)等于24。
| 运算符 | 描述 |
|---|---|
+ |
加法操作符。 |
– |
减法运算符。例如,17-7等于10。注意,这些字符中的一对是InterSystems SQL注释指示器。因此,要指定两个或多个减法操作符或负号,必须使用空格或圆括号。 |
* |
乘法运算符。例如,17*7等于119。 |
/ |
除法操作符。例如:17/7 = 2.428571428571428571。 |
\ |
整数除法运算符。例如,17\7等于2。 |
# |
模运算符。例如,17 #7等于3。注意,因为#字符也是一个有效的标识符字符,要将它用作模运算符,应该指定它与操作数之间用前后空格分隔 |
E |
求幂(科学记数法)运算符。可以是大写或小写。例如:7E3 = 7000。指数过大会导致SQLCODE -7“指数超出范围”错误。例如1E309、7E308。 |
() |
分组操作符。用于嵌套算术运算。 |
InterSystems SQL提供对InterSystems IRIS®Data Platform数据库中存储的数据的无懈可击的标准关系访问。
InterSystems SQL提供以下优势:
提供例程信息。
^$|nspace|ROUTINE(routine_name)
^$|nspace|R(routine_name)
|nspace|或[nspace] 可选-扩展SSVN引用,可以是显式名称空间名称,也可以是隐含名称空间。必须计算为带引号的字符串,该字符串括在方括号([“nspace”])或竖线(|“nspace”|)中。命名空间名称不区分大小写;它们以大写字母存储和显示。可以将^$ROUTINE结构化系统变量用作$DATA、$ORDER和$QUERY函数的参数,以从当前命名空间(默认)或指定命名空间返回例程信息。^$ROUTINE返回有关例程的OBJ代码版本的例程信息。
在InterSystems ObjectScript中,一个例程有三个代码版本:MAC(用户编写的代码,可能包括宏预处理器语句)、INT(编译的MAC代码,用于执行宏预处理)和OBJ(可执行目标代码)。可以使用^$ROUTINE global返回关于int代码版本的信息。可以使用^$ROUTINE返回有关OBJ代码版本的信息。
此可选参数允许使用扩展SSVN引用在另一个命名空间中指定全局。
标识符是SQL实体的名称,例如表、视图、列(字段)、模式、表别名、列别名、索引、存储过程、触发器或其他SQL实体。 标识符名称在其上下文中必须是唯一的; 例如,同一模式中的两个表或同一表中的两个字段不能具有相同的名称。 但是,不同模式中的两个表或不同表中的两个字段可以具有相同的名称。 在大多数情况下,相同的标识符名称可以用于不同类型的SQL实体; 例如,一个模式、该模式中的表以及该表中的字段都可以具有相同的名称,而不会产生冲突。 但是,同一个模式中的表和视图不能具有相同的名称。
InterSystems IRIS®数据平台SQL标识符遵循一组命名约定,根据标识符的使用,这可能会受到进一步的限制。 标识符不区分大小写。
标识符可以是简单标识符,也可以是分隔符。 InterSystems SQL默认支持简单标识符和分隔标识符。
简单标识符有以下语法:
simple-identifier ::= identifier-start { identifier-part }
identifier-start ::= letter | % | _
identifier-part ::= letter | number | _ | @ | # | $
标识符start是SQL标识符的第一个字符。
它必须是下列之一:
上一篇: IRIS中的权限管理
在上一篇文章中,我们介绍了IRIS中的权限控制体系。在本文中我们将以一个常见的实施需求为例介绍如何使用IRIS的权限配置出一个只能使用SQL的用户。
和所有用户需求一样,当用户提出一个需求时,除其语义显式的含义之外,还需分析其是否具有没有明确说明的含义。 对于一个只能使用SQL的用户这样一个需求,即应当结合平台的特征分解成为功能需求: 具有一个合法,可通过用户名和密码使用IRIS的用户 该用户的数据库权限
如上所示,一个只能使用SQL的用户,这样一个看似简单的需求,如果需要与用户获得一致的理解并付诸实施,则需要将其分解,对于没有在用户需求中明确约定的部分,应作为待确认项与用户确认。 另外,需要注意的是,IRIS作为一个数据平台,除了提供底层的数据库之外,也提供了Portal等Web应用程序便于使用Sharding、HA、Interoperability等平台功能,通过平台对外提供的Webservice、REST等web接口也受Web应用程序控制。
本周进入 InterSystems 编程大奖赛 的投票时间! 此次中国有多位参赛者,我们将其项目罗列在此,欢迎投票!
大家好!
InterSystems IRIS开发者们,我们有一个好消息要跟大家分享! 我们很高兴能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!
时间: 2021年2月8日 - 3月8日
奖金总额: $16,000
这是我们团队参加的第一届InterStstems编程竞赛! 快来看看投票给我们!
超额预订管理系统结合了酒店业的独特条件,例如房价,订购渠道,客户需求等。 本系统使用机器学习算法(例如:KNN / ES-RNN ...)来准确预测酒店的每日未入住和入住率,并进一步与收益结合以找到最佳的最大客房销售量,从而精准增加酒店的边际收益。
移步欣赏作品点击如下连接
https://github.com/BroadCastAir/hotel_api & https://github.com/BroadCastAir/Hotel_OverBooking_Sys
投票给我们点击: Check the related application on InterSystems Open Exchange
在InterSystems IRIS中使用ObjectScript构建REST API。
开发的API可以遵循OPEN API规范,可以使用Docker和VSCode开发,可以部署为ZPM模块,同时也可用作酒店超售系统的Data API。
什么是酒店超售管理系统?
超售管理系统结合了酒店的独特条件,例如房价,订购渠道,客户需求等。系统使用机器学习算法(例如:KNN / ES-RNN ...)来准确预测酒店的每日未入住和入住率,并进一步与收益方程式结合以找到最佳的最大客房销售量,从而可以大大增加酒店的边际收益。
来看看我们的Repo!
https://github.com/BroadCastAir/hotel_api
和
https://github.com/BroadCastAir/Hotel_OverBooking_Sys
投票支持我们的应用程序!
InterSystems IRIS不仅在医疗保健行业,在零售和酒店业中也具有广阔的发展前景。
本章概述了InterSystems SQL的特性,特别是那些SQL标准未涵盖的特性,或者与InterSystems IRIS®数据平台统一数据架构相关的特性。 本教程假定读者具备SQL知识,并不是为介绍SQL概念或语法而设计的。
本章讨论以下主题:
在InterSystems SQL中,数据显示在表中。每个表都包含许多列。一个表可以包含零个或多个数据值行。以下术语大体上等效:
| 数据术语 | 关系数据库术语 | InterSystems IRIS术语 |
|---|---|---|
| 数据库 | 架构 | 包 |
| 数据库 | 表 | persistent class(持久类) |
| 字段 | 列 | 属性 |
| 记录 | 行 |
表有两种基本类型:基表(包含数据,通常简称为表)和视图(基于一个或多个表提供逻辑视图)。
SQL模式提供了一种将相关表,视图,存储过程和缓存查询的集合进行分组的方法。模式的使用有助于防止表级别的命名冲突,因为表,视图或存储过程的名称在其模式内必须唯一。应用程序可以在多个架构中指定表。
SQL模式与持久性类包相对应。通常,模式与其相应的程序包具有相同的名称,但是由于不同的模式命名约定或故意指定了不同的名称,因此这些名称可能有所不同。模式到程序包的映射在SQL到类名的转换中有进一步描述。
亲爱的社区开发者们:
本周进入 InterSystems 编程大奖赛 的投票时间! 来为你心目中基于InterSystems IRIS而构建的最佳方案投票吧!
🔥 点击投票 投票入口 🔥
如何投票?有哪些最新信息值得了解一下?