文章 姚 鑫 · 一月 3, 2022 阅读大约需 4 分钟 第十三章 SQL聚合函数 XMLAGG 第十三章 SQL聚合函数 XMLAGG 一个聚合函数,它创建一个串接的值字符串。 #SQL #Caché 0 0 0 132
文章 姚 鑫 · 三月 11, 2022 阅读大约需 5 分钟 第七十八章 SQL函数 $LENGTH 第七十八章 SQL函数 $LENGTH 返回字符串中字符数或分隔子字符串数的字符串函数。 大纲 $LENGTH(expression[,delimiter]) 参数 expression - 目标字符串。它可以是数值、字符串文字、任何变量的名称或任何有效的表达式。 delimiter - 可选 — 在目标字符串中划分不同子字符串的字符串。它必须是字符串文字,但可以是任意长度。括起来的引号是必需的。 $LENGTH 返回 SMALLINT 数据类型。 #SQL #Caché 0 0 0 131
文章 姚 鑫 · 三月 22, 2021 阅读大约需 1 分钟 第十二章 使用嵌入式SQL(六) 第十二章 使用嵌入式SQL(六) 持久类方法中的嵌入式SQL 下面的示例显示了一个持久类,其中包含一个类方法和一个实例方法,两者都包含嵌入式SQL: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 130
文章 姚 鑫 · 九月 9, 2021 阅读大约需 7 分钟 第十一章 SQL命令 CREATE PROCEDURE(二) 第十一章 SQL命令 CREATE PROCEDURE(二) characteristics 用于创建方法的特征与用于创建查询的特征不同。 如果指定的特征无效,系统将生成SQLCODE -47错误。 指定重复的特征将导致SQLCODE -44错误。 可用的方法特征关键字如下: #SQL #Caché 0 0 0 129
文章 姚 鑫 · 五月 20, 2022 阅读大约需 3 分钟 第148章 SQL函数 $TRANSLATE 第148章 SQL函数 $TRANSLATE 执行逐字符替换的字符串函数。 大纲 $TRANSLATE(string,identifier[,associator]) 参数 string - 目标字符串。它可以是字段名称、文字、主机变量或 SQL 表达式。 identifier - 要在字符串中搜索的字符。它可以是字符串或数字文字、主变量或 SQL 表达式。 associator - 可选 — 与标识符中的每个字符对应的替换字符。它可以是字符串或数字文字、主变量或 SQL 表达式。 描述 $TRANSLATE 函数在返回值字符串中执行逐字符替换。它一次处理一个字符的字符串参数。它将字符串中的每个字符与标识符参数中的每个字符进行比较。如果 $TRANSLATE 找到匹配项,它会记下该字符的位置。 #SQL #Caché 1 1 1 129
文章 姚 鑫 · 十二月 18, 2021 阅读大约需 5 分钟 第十九章 SQL谓词 %STARTSWITH(一) 第十九章 SQL谓词 %STARTSWITH(一) 用指定初始字符的子字符串匹配值。 大纲 scalar-expression %STARTSWITH substring 参数 scalar-expression - 将其值与子字符串进行比较的标量表达式(最常见的是数据列)。 substring - 解析为包含与标量表达式中的值匹配的第一个或多个字符的字符串或数字的表达式。 描述 %STARTSWITH谓词允许选择以子字符串中指定的字符开头的数据值。 如果substring不匹配任何标量表达式值,%STARTSWITH返回空字符串。 无论显示模式如何,这个匹配总是在逻辑(内部存储)数据值上执行。 下面的示例选择所有以“M”开头的名称: #SQL #Caché 0 0 0 129
文章 姚 鑫 · 九月 20, 2021 阅读大约需 11 分钟 第二十一章 SQL命令 CREATE TRIGGER(一) 第二十一章 SQL命令 CREATE TRIGGER(一) 创建触发器 #SQL #Caché 0 0 0 129
文章 姚 鑫 · 十月 23, 2021 阅读大约需 12 分钟 第五十四章 SQL命令 INSERT(三) 第五十四章 SQL命令 INSERT(三) SQLCODE错误 默认情况下,INSERT是要么全有要么全无的事件:要么完全插入行,要么根本不插入行。 IRIS返回一个状态变量SQLCODE,指示插入是成功还是失败。要将行插入到表中,插入操作必须满足所有表、字段名和字段值要求,如下所示。 #SQL #Caché 0 0 0 126
文章 姚 鑫 · 三月 10, 2021 阅读大约需 5 分钟 第七章 SQL表之间的关系 第七章 SQL表之间的关系 要在表之间强制执行引用完整性,可以定义外键。修改包含外键约束的表时,将检查外键约束。 定义外键 有几种方法可以在InterSystems SQL中定义外键: 可以定义两个类之间的关系。定义关系会自动将外键约束投影到SQL。 可以在类定义中添加显式外键定义(对于关系未涵盖的情况)。 可以使用CREATE TABLE或ALTER TABLE命令添加外键。可以使用ALTER TABLE命令删除外键。 用作外键引用的RowID字段必须是公共的。引用隐藏的RowID?有关如何使用公用(或专用)RowID字段定义表的信息。 一个表(类)的外键最大数目为400。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 125
文章 姚 鑫 · 五月 10, 2022 阅读大约需 4 分钟 第138章 SQL函数 TIMESTAMPADD 第138章 SQL函数 TIMESTAMPADD 一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。 #SQL #Caché 0 0 0 124
文章 Lele Yang · 七月 13, 2021 阅读大约需 2 分钟 FAQ 常见问题系列--互操作篇 使用SQL Outbound Adapter调用Oracle存储过程获取CLOB的正确方式 近日遇到客户反映在Business Operation中使用SQL Outbound Adapter调用Oracle存储过程时,无法获取CLOB完整的返回内容。借此在这里介绍下该如何调用,话不多说,直接上代码。 注意,以下代码片段直接应用于Business Operation中, #SQL 0 1 0 123
文章 姚 鑫 · 九月 23, 2021 阅读大约需 9 分钟 第二十四章 SQL命令 CREATE VIEW(一) 第二十四章 SQL命令 CREATE VIEW(一) 创建视图 #SQL #Caché 0 0 0 123
文章 Michael Lei · 八月 9, 2022 阅读大约需 23 分钟 社区文章汇总--跟着社区学习InterSystems 技术 在这篇文章中,你可以访问InterSystems开发者社区中与学习InterSystems IRIS最相关主题的文章库。找到按机器学习、嵌入式Python、JSON、API和REST应用、管理和配置InterSystems环境、Docker和云、VSCode、SQL、分析/BI、全局、安全、DevOps、互操作性、Native API排列的顶级发表的文章。快来享受学习的乐趣吧! 机器学习 机器学习是建立先进的数据分析和自动化人工活动的一种必要的技术,具有很好的效率。它可以创建认知模型,从现有的数据中学习,并根据其自我调整的算法进行预测、概率计算、分类、识别和 "非创造性 "的人类活动的自动化。 在所有情况下,InterSystems IRIS作为一个数据平台和环境来创建、执行、提供和使用这些机器学习模型。IRIS能够从SQL命令(IntegratedML)中使用ML,使用嵌入式Python和PMML(预测模型标记语言)来执行ML。你可以在以下文章中查看它的功能: ##嵌入式 Python #Docker #ObjectScript #REST API #SQL #云 #Globals #分析 #机器学习 #InterSystems IRIS 0 1 0 123
文章 姚 鑫 · 七月 13, 2022 阅读大约需 3 分钟 第四章 使用嵌入式 Python(一) 第四章 使用嵌入式 Python (一) 嵌入式 Python 允许使用 Python 作为编程 IRIS 应用程序的本机选项。 预备知识 使用嵌入式 Python 所需的 Python 版本取决于运行的平台。 在 Microsoft Windows 上,IRIS 安装工具包安装正确版本的 Python(当前为 3.9.5),仅用于嵌入式 Python。如果在开发机器上并希望将 Python 用于一般用途,建议从 https://www.python.org/downloads/ 下载并安装相同的版本。 #SQL #Caché 0 0 0 122
文章 姚 鑫 · 二月 5, 2022 阅读大约需 7 分钟 第四十五章 SQL函数 DATEPART 第四十五章 SQL函数 DATEPART 日期/时间函数,返回表示日期/时间表达式指定部分的值的整数。 #SQL #Caché 0 0 0 122
文章 姚 鑫 · 四月 22, 2021 阅读大约需 8 分钟 第五章 优化查询性能(一) 第五章 优化查询性能(一) InterSystems SQL自动使用查询优化器创建在大多数情况下提供最佳查询性能的查询计划。该优化器在许多方面提高了查询性能,包括确定要使用哪些索引、确定多个AND条件的求值顺序、在执行多个联接时确定表的顺序,以及许多其他优化操作。可以在查询的FROM子句中向此优化器提供“提示”。本章介绍可用于评估查询计划和修改InterSystems SQL将如何优化特定查询的工具。 InterSystems IRIS®Data Platform支持以下优化SQL查询的工具: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 122
文章 Jingwei Wang · 七月 21, 2022 阅读大约需 5 分钟 InterSystems SQL 的使用 - 第四部分 - 视图 视图为存储查询,提供了物理表的所有灵活性和安全权限。所有的视图都是可更新的或只读的。 注意:不能对只读的数据库中的数据创建视图。不能对存储在通过ODBC或JDBC网关连接的Informix表中的数据创建视图。这是因为InterSystems IRIS查询转换在FROM子句中使用子查询,而Informix不支持FROM子句的子查询。 #SQL #InterSystems IRIS for Health 0 0 0 121
文章 Johnny Wang · 二月 11, 2022 阅读大约需 2 分钟 翻译文章-初学者资源库 Hello 家人们, InterSystems 学习网站有许多非常棒的课程。 因此,如果您想了解 InterSystems 并开始使用 InterSystems,希望这些资源可以帮到你: #自适应分析(Adaptive Analytics) #IntegratedML #InterSystems API管理器(IAM) #InterSystems 业务解决方案和架构 #ObjectScript #SQL #InterSystems IRIS #InterSystems IRIS for Health 0 0 1 119
文章 姚 鑫 · 三月 9, 2021 阅读大约需 11 分钟 第六章 SQL定义和使用视图 第六章 SQL定义和使用视图 视图是一种虚拟表,由执行时通过SELECT语句或几个SELECT语句的UNION从一个或多个物理表中检索到的数据组成。 SELECT可以通过指定表或其他视图的任意组合来访问数据。因此,存储了视图的视图提供了物理表的所有灵活性和安全性特权。 InterSystemsIRIS®数据平台上的InterSystems SQL支持在视图上定义和执行查询的功能。 注意:不能对以只读方式安装的数据库中存储的数据创建视图。 无法在通过ODBC或JDBC网关连接链接的Informix表中存储的数据上创建视图。这是因为InterSystems IRIS查询转换对这种类型的查询使用FROM子句中的子查询。 Informix不支持FROM子句子查询。 # 创建一个视图 可以通过几种方式定义视图: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 119
文章 姚 鑫 · 十二月 29, 2021 阅读大约需 3 分钟 第九章 SQL聚合函数 MIN [toc] 第九章 SQL聚合函数 MIN 返回指定列中的最小数据值的聚合函数。 #SQL #Caché 0 0 0 118
文章 Jingwei Wang · 七月 21, 2022 阅读大约需 3 分钟 InterSystems SQL 的使用 - 第六部分 - SQL 数据的导入、导出 在InterSystems IRIS数据平台管理门户中,有一些工具用于导入和导出数据。这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大尺寸是3,641,144个字符。 你也可以使用%SQL.Import.Mgr类或LOAD DATA SQL命令导入数据,并使用%SQL.Export.Mgr类导出数据。 从文本文件中导入数据(.csv 和.txt) 你可以从一个文本文件中导入数据到一个合适的InterSystems IRIS类。当你这样做时,系统会在该类的表中创建并保存新的行。该类必须已经存在并且必须被编译。 步骤如下: #SQL #InterSystems IRIS for Health 0 0 0 117
文章 姚 鑫 · 十一月 14, 2021 阅读大约需 8 分钟 第七十六章 SQL命令 TOP 第七十六章 SQL命令 TOP 指定返回多少行的SELECT子句。 #SQL #Caché 0 0 0 116
文章 姚 鑫 · 四月 14, 2021 阅读大约需 8 分钟 第二章 定义和构建索引(二) 第二章 定义和构建索引(一) 定义索引 使用带有索引的Unique、PrimaryKey和IdKey关键字 与典型的SQL一样,InterSystems IRIS支持惟一键和主键的概念。 InterSystems IRIS还能够定义IdKey,它是类实例(表中的行)的唯一记录ID。 这些特性是通过Unique、PrimaryKey和IdKey关键字实现的: - Unique -在索引的属性列表中列出的属性上定义一个唯一的约束。 也就是说,只有这个属性(字段)的唯一数据值可以被索引。 唯一性是根据属性的排序来确定的。 例如,如果属性排序是精确的,则字母大小写不同的值是唯一的; 如果属性排序是SQLUPPER,则字母大小写不同的值不是唯一的。 但是,请注意,对于未定义的属性,不会检查索引的惟一性。 根据SQL标准,未定义的属性总是被视为唯一的。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 115
文章 姚 鑫 · 九月 5, 2021 阅读大约需 6 分钟 第七章 SQL命令 CREATE INDEX(二) 第七章 SQL命令 CREATE INDEX(二) UNIQUE关键字 使用UNIQUE关键字,可以指定索引中的每条记录都有一个唯一的值。 更具体地说,这确保了索引(以及包含索引的表)中的两条记录不能具有相同的排序值。 默认情况下,大多数索引使用大写字符串排序(使搜索不区分大小写)。 在本例中,值“Smith”和“SMITH”被认为是相等的,而不是唯一的。 CREATE INDEX不能指定非默认索引字符串排序规则。 通过在类定义中定义索引,可以为各个索引指定不同的字符串排序规则。 可以更改名称空间的默认排序规则,使字段/属性在默认情况下区分大小写。 更改此选项需要重新编译命名空间中的所有类并重新构建所有索引。 转到Management Portal,选择Classes选项,为存储的查询选择名称空间,并使用Compile选项重新编译相应的类。 然后重建所有指数。 它们将区分大小写。 注意:当表的数据被其他用户访问时,不要重建索引。 这样做可能会导致不准确的查询结果。 #SQL #Caché 0 0 0 113
文章 姚 鑫 · 六月 9, 2022 阅读大约需 6 分钟 第四章 数据类型(三) 第四章 数据类型(三) 日期、时间、PosixTime 和时间戳数据类型 可以定义日期、时间和时间戳数据类型,并通过标准 SQL 日期和时间函数相互转换日期和时间戳。例如,可以使用 CURRENT_DATE 或 CURRENT_TIMESTAMP 作为使用该数据类型定义的字段的输入,或者使用 DATEADD、DATEDIFF、DATENAME 或 DATEPART 来操作使用该数据类型存储的日期值。 数据类型类 %Library.Date、%Library.Time、%Library.PosixTime、%Library.TimeStamp 和 %MV.Date 对于 SqlCategory 的处理方式如下: #SQL #Caché 0 0 0 112
文章 姚 鑫 · 五月 19, 2021 阅读大约需 2 分钟 IRIS 单元测试 IRIS 单元测试 第一章 单元测试概述☆☆☆☆ 第二章 使用%UnitTest进行单元测试☆☆☆☆ 第三章 执行测试☆☆☆ 第四章 使用Setup和tear Down方法执行测试☆☆☆ 前言 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 112
文章 姚 鑫 · 三月 16, 2021 阅读大约需 5 分钟 第十一章 SQL隐式联接(箭头语法) 第十一章 SQL隐式联接(箭头语法) InterSystems SQL提供了一个特殊的–>运算符,作为从相关表中获取值的快捷方式,而在某些常见情况下无需指定显式的JOIN即可。可以使用此箭头语法代替显式联接语法,也可以将其与显式联接语法结合使用。箭头语法执行左外部联接。 箭头语法可用于类的属性或父表的关系属性的引用。其他类型的关系和外键不支持箭头语法。不能在ON子句中使用箭头语法(–>)。 属性引用 可以使用- >操作符作为从“引用表”获取值的简写。 例如,假设定义了两个类:Company: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 111
文章 姚 鑫 · 三月 21, 2021 阅读大约需 9 分钟 第十二章 使用嵌入式SQL(五) 第十二章 使用嵌入式SQL(五) 嵌入式SQL变量 以下局部变量在嵌入式SQL中具有特殊用途。这些局部变量名称区分大小写。在过程启动时,这些变量是不确定的。它们由嵌入式SQL操作设置。也可以使用SET命令直接设置它们,或使用NEW命令将其重置为未定义。像任何局部变量一样,值将在过程持续期间或直到设置为另一个值或使用NEW进行定义之前一直存在。例如,某些成功的嵌入式SQL操作未设置%ROWID。执行这些操作后,%ROWID是未定义的或保持设置为其先前值。 %msg %ROWCOUNT %ROWID SQLCODE 这些局部变量不是由Dynamic SQL设置的。 (请注意,SQL Shell和Management Portal SQL接口执行Dynamic SQL。)相反,Dynamic SQL设置相应的对象属性。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 110
文章 姚 鑫 · 三月 25, 2021 阅读大约需 11 分钟 第十三章 使用动态SQL(三) 第十三章 使用动态SQL(三) 执行SQL语句 有两种使用%SQL.Statement类执行SQL语句的方法: - %Execute(),它执行以前使用%Prepare()或%PrepareClassQuery()准备的SQL语句。 - %ExecDirect(),它同时准备和执行一条SQL语句。 也可以通过使用$SYSTEM.SQL.Execute()方法执行SQL语句而无需创建对象实例。此方法既准备又执行SQL语句。它创建一个缓存的查询。下面的终端示例显示Execute()方法: #SQL #Caché #iKnow #InterSystems IRIS for Health 0 0 0 110
文章 姚 鑫 · 三月 28, 2021 阅读大约需 7 分钟 第十三章 使用动态SQL(六) 第十三章 使用动态SQL(六) 用%ObjectSelectMode = 1 Swizzling字段名称属性 下面的示例使用%ObjectSelectMode = 1进行准备,当使用字段名称属性返回值时,其类型类别为可Swizzle类型的字段(持久性类,序列类或流类)将自动发生Swizzle。转换字段值的结果是相应的对象参考(oref)。使用%Get()或%GetData()方法访问字段时,InterSystems IRIS不会执行此筛选操作。在此示例中,rset.Home处于Swizzle状态,而引用同一字段的rset.%GetData(2)处于not swizzled状态: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109