文章 姚 鑫 · 十一月 6, 2021 阅读大约需 4 分钟 第六十八章 SQL命令 SAVEPOINT 第六十八章 SQL命令 SAVEPOINT 在事务中标记一个点。 大纲 SAVEPOINT pointname 参数 pointname - 保存点的名称,指定为标识符。 描述 SAVEPOINT语句标记事务中的一个点。建立保存点使能够执行事务回滚到保存点,撤消在此期间完成的所有工作并释放在此期间获得的所有锁。在长期运行的事务或具有内部控制结构的事务中,通常希望能够回滚事务的一部分,而不撤消在事务期间提交的所有工作。 #SQL #Caché 0 0 0 53
文章 姚 鑫 · 十一月 23, 2021 阅读大约需 3 分钟 第八十五章 SQL命令 UPDATE(四) 第八十五章 SQL命令 UPDATE(四) 示例 本节中的示例更新SQLUser.MyStudents表。 下面的示例创建SQLUser.MyStudents表,并用数据填充它。 因为这个示例的重复执行会积累具有重复数据的记录,所以它使用TRUNCATE TABLE在调用INSERT之前删除旧数据。 在调用UPDATE示例之前执行这个示例: #SQL #Caché 0 0 0 47
文章 姚 鑫 · 十二月 10, 2021 阅读大约需 8 分钟 第十一章 SQL谓词 %INLIST 第十一章 SQL谓词 %INLIST 将一个值匹配到%List结构化列表中的元素。 #SQL #Caché 0 0 0 32
文章 姚 鑫 · 十二月 26, 2021 阅读大约需 6 分钟 第六章 SQL聚合函数 JSON_ARRAYAGG 第六章 SQL聚合函数 JSON_ARRAYAGG 创建JSON格式值数组的聚合函数。 注:IRIS可用,IRIS之前版本不可用。 #SQL #Caché 0 0 0 268
文章 姚 鑫 · 一月 12, 2022 阅读大约需 9 分钟 第二十二章 SQL函数 CAST(一) 第二十二章 SQL函数 CAST(一) 将给定表达式转换为指定数据类型的函数。 #SQL #Caché 0 0 0 170
文章 姚 鑫 · 一月 30, 2022 阅读大约需 1 分钟 第三十九章 SQL函数 DATABASE 第三十九章 SQL函数 DATABASE 返回数据库名称限定符的标量字符串函数。 大纲 {fn DATABASE()} 描述 DATABASE返回与连接句柄对应的数据库名称的当前限定符。 在IRIS中,DATABASE总是返回空字符串(")。 #SQL #Caché 0 0 0 72
文章 姚 鑫 · 二月 14, 2022 阅读大约需 3 分钟 第五十四章 SQL函数 EXP 第五十四章 SQL函数 EXP 返回数字的指数(自然对数的倒数)的标量数值函数。 大纲 {fn EXP(expression)} 参数 expression - 对数指数,数值表达式。 EXP返回NUMERIC或DOUBLE数据类型。如果表达式的数据类型为DOUBLE,则EXP返回DOUBLE;否则返回NUMERIC。 描述 Exp是指数函数e n,其中e是常数2.718281828。因此,要返回e的值,可以指定{fn exp(1)}。Exp是自然对数函数log的逆函数。 #SQL #Caché 0 0 0 40
文章 姚 鑫 · 二月 28, 2022 阅读大约需 5 分钟 第六十八章 SQL函数 JSON_ARRAY 第六十八章 SQL函数 JSON_ARRAY 以JSON数组形式返回数据的转换函数。 #SQL #Caché 0 0 0 328
文章 姚 鑫 · 三月 17, 2022 阅读大约需 2 分钟 第八十四章 SQL函数 $LISTFROMSTRING 第八十四章 SQL函数 $LISTFROMSTRING 从字符串创建列表的列表函数。 大纲 $LISTFROMSTRING(string[,delimiter]) 参数 string - 要转换为 列表的字符串。此字符串包含一个或多个元素,由分隔符分隔。分隔符不会成为生成的列表的一部分。 delimiter - 可选 — 用于分隔字符串中的子字符串(元素)的分隔符。将分隔符指定为带引号的字符串。如果未指定分隔符,则默认为逗号 (,) 字符。 描述 $LISTFROMSTRING 接受一个包含分隔元素的带引号的字符串并返回一个列表。列表以不使用分隔符的编码格式表示数据。因此,列表可以包含所有可能的字符,并且非常适合位串数据。使用 ObjectScript 和 SQL $LIST 函数处理列表。 #SQL #Caché 0 0 0 65
文章 姚 鑫 · 四月 2, 2022 阅读大约需 2 分钟 第100章 SQL函数 NULLIF 第100章 SQL函数 NULLIF 如果两个表达式具有相同的值,则返回 NULL 的函数。 大纲 NULLIF(expression1,expression2) 参数 expression1 - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。 expression2 - 表达式,可以是列名、数字或字符串文字、主变量或另一个标量函数的结果。 NULLIF 返回与 expression1 相同的数据类型。 描述 如果 expression1 的值等于 expression2 的值,则 NULLIF 函数返回 NULL。否则,它返回 expression1 值。 NULLIF 等价于: #SQL #Caché 0 0 0 41
文章 姚 鑫 · 四月 19, 2022 阅读大约需 1 分钟 第117章 SQL函数 REPLICATE 第117章 SQL函数 REPLICATE 将字符串重复指定次数的字符串函数。 大纲 REPLICATE(expression,repeat-count) 参数 expression - 要重复的字符串表达式。 repeat-count - 重复的次数,以整数表示。 描述 注意:REPLICATE 函数是 REPEAT 函数的别名。提供 REPLICATE 是为了与 TSQL 兼容。有关详细信息,请参阅重复。 #SQL #Caché 0 0 0 48
文章 姚 鑫 · 五月 3, 2022 阅读大约需 1 分钟 第131章 SQL函数 SQUARE 第131章 SQL函数 SQUARE 返回数字平方的标量数值函数。 大纲 SQUARE(numeric-expression) 参数 numeric-expression - 解析为数值的表达式。 SQUARE 返回 NUMERIC 或 DOUBLE 数据类型。如果 numeric-expression 是数据类型 DOUBLE,则 SQUARE 返回 DOUBLE;否则,它返回 NUMERIC。 描述 SQUARE 返回数值表达式的平方。如果传递 NULL 值,SQUARE 返回 NULL。 SQUARE 返回的精度和小数位数与 SQL 乘法运算符返回的相同。 #SQL #Caché 0 0 0 57
文章 姚 鑫 · 五月 19, 2022 阅读大约需 10 分钟 第147章 SQL函数 TO_TIMESTAMP 第147章 SQL函数 TO_TIMESTAMP 将格式化字符串转换为时间戳的日期函数。 大纲 TO_TIMESTAMP(date_string[,format]) 参数 date_string - 要转换为时间戳的字符串表达式。此表达式可能包含日期值、时间值或日期和时间值。 format - 可选 — 对应于 date_string 的日期和时间格式字符串。如果省略,则默认为 DD MON YYYY HH:MI:SS。 描述 TO_TIMESTAMP 函数将各种格式的日期和时间字符串转换为标准时间戳,数据类型为 TIMESTAMP。 TO_TIMESTAMP 返回具有以下格式的时间戳: #SQL #Caché 0 0 0 101
文章 姚 鑫 · 六月 7, 2022 阅读大约需 9 分钟 第二章 数据类型(一) 第二章 数据类型(一) 指定 SQL 实体(如列)可以包含的数据类型。 描述 此处描述了以下主题: - 支持的 DDL 数据类型及其类属性映射表 - 数据类型优先级用于从具有不同数据类型的数据值中选择最具包容性的数据类型 - 日期、时间、PosixTime 和时间戳数据类型 - 使用SqlCategory和用户定义的标准 - 对 1840 年 12 月 31 日之前的日期的可配置支持 #SQL #Caché 0 0 0 86
文章 姚 鑫 · 六月 24, 2022 阅读大约需 4 分钟 第九章 设置结构化日志记录(一) 第九章 设置结构化日志记录(一) IRIS 支持结构化日志记录。 创建多个日志,每个日志用于不同的目的。从以前的产品迁移过来的客户可以像过去一样利用这些日志,但现在还可以将所有日志信息导入一个单一的、中央的、机器可读的日志文件——结构化日志。然后可以将此文件与第三方分析工具一起使用。 本文概述了结构化日志中的信息,展示了日志示例,并描述了如何启用结构化日志记录。 结构化日志中可用的信息 当启用结构化日志记录时,系统会将相同的数据写入结构化日志,它也会写入其他日志(无论哪个)。例如,系统将相同的行写入messages.log 和结构化日志。 启用结构化日志记录后,结构化日志包含以下所有信息: #SQL #Caché 0 0 0 62
文章 姚 鑫 · 七月 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 127
文章 Jingwei Wang · 一月 19, 2023 阅读大约需 6 分钟 使用嵌入式 Python 创建存储过程 Python 已成为世界上使用最广泛的编程语言(来源:https://www.tiobe.com/tiobe-index/),SQL 作为数据库语言继续引领潮流。 Python 和 SQL 一起工作以提供 SQL 单独无法提供的新功能不是很好吗?毕竟,Python 拥有超过 380,000 个已发布的库(来源:https://pypi.org/),它们具有非常有趣的功能,可以在 Python 中扩展您的 SQL 查询。本文详细介绍了如何使用嵌入式 Python 在 InterSystems IRIS 数据库中创建新的 SQL 存储过程。 用作示例的 Python 库 本文将使用两个非常有用的库:Geopy 和 Chronyk。 Geopy 是一个用于将地理编码(地址和地理坐标的限定)应用于地址数据的库。有了它,就可以从街道名称中获取邮局格式的邮政编码和完整地址。非常有用,因为许多记录都有地址。 ##嵌入式 Python #Python #SQL #InterSystems IRIS #InterSystems IRIS for Health Open Exchange app 0 0 0 68
文章 Jingwei Wang · 二月 3 阅读大约需 2 分钟 基于IRIS For Health 进行MySQL到Oracle的数据查询和插入 本篇文章会介绍一个简单的示例:如何使用IRIS 2023版自带的EnsLib.SQL.Service.GenericService 和EnsLib.SQL.Operation.GenericOperation将MySQL的数据库读取出来并灌入Oracle数据库,本示例以Windows环境为例。 1. 创建SQL网关连接,连到MySQL 1.1 在windows中创建MySQL ODBC连接 #SQL #数据库 #InterSystems IRIS for Health 0 0 0 41
文章 姚 鑫 · 三月 14, 2021 阅读大约需 7 分钟 第十章 SQL排序(一) 第十章 SQL排序 排序规则指定值的排序和比较方式,并且是InterSystems SQL和InterSystemsIRIS®数据平台对象的一部分。有两种基本排序规则:数字和字符串。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 378
文章 姚 鑫 · 三月 31, 2021 阅读大约需 15 分钟 第十四章 使用SQL Shell界面(二) 第十四章 使用SQL Shell界面(二) 存储和调用SQL语句 通过数据回调 SQL Shell自动将在终端会话期间发出的每个成功的SQL语句存储在本地缓存中,并为其分配一个顺序号。这些数字用于在当前Terminal过程中重新调用以前的SQL语句。 SQL Shell仅将数字分配给成功的SQL语句。如果在准备SQL语句期间发生错误,则不会分配任何编号。这些数字分配不是特定于名称空间的。以下是可用的数字调用命令: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 97
文章 姚 鑫 · 四月 18, 2021 阅读大约需 13 分钟 第三章 优化表(一) 第三章 优化表(一) 要确保InterSystems IRIS®Data Platform上的InterSystems SQL表的最高性能,可以执行多种操作。优化可以对针对该表运行的任何查询产生重大影响。本章讨论以下性能优化注意事项: ExtentSize、Selective和BlockCount用于在用数据填充表之前指定表数据估计;此元数据用于优化未来的查询。 运行tune Table来分析填充表中的代表表数据;生成的元数据用于优化未来的查询。 优化表计算的值包括扩展大小、选择性、异常值选择性、平均字段大小和块计数 导出和重新导入优选表统计数据 扩展大小、选择性和块数(ExtentSize, Selectivity, and BlockCount) 当查询优化器决定执行特定SQL查询的最有效方式时,它会考虑以下三种情况: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 141
文章 姚 鑫 · 五月 5, 2021 阅读大约需 6 分钟 第三章 使用多维存储(全局变量)(一) 第三章 使用多维存储(全局变量)(一) 本章描述了使用多维存储(全局变量)可以执行的各种操作。 以全局变量存储数据 在全局节点中存储数据很简单:像对待任何其他变量一样对待全局变量。 区别在于对全局变量的操作是自动写入数据库的。 创建全局变量 创建新的全局变量不需要设置工作;只需将数据设置为全局变量即可隐式创建新的全局结构。可以创建全局变量(或全局变量下标)并通过单个操作将数据放入其中,也可以创建全局变量(或下标)并通过将其设置为空字符串将其保留为空。在ObjectScript中,这些操作是使用SET命令完成的。 下面的例子定义了一个名为Color(如果还不存在)的全局变量,并将值“Red”与之关联。 如果已经存在一个名为Color的全局变量,那么这些示例将其修改为包含新信息。 在ObjectScript中: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 58
文章 姚 鑫 · 五月 19, 2021 阅读大约需 2 分钟 IRIS 单元测试 IRIS 单元测试 第一章 单元测试概述☆☆☆☆ 第二章 使用%UnitTest进行单元测试☆☆☆☆ 第三章 执行测试☆☆☆ 第四章 使用Setup和tear Down方法执行测试☆☆☆ 前言 #SQL #Caché #Global Masters #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 114
文章 姚 鑫 · 九月 4, 2021 阅读大约需 9 分钟 第六章 SQL命令 CREATE INDEX(一) 第六章 SQL命令 CREATE INDEX(一) 为表创建索引。 #SQL #Caché 0 0 0 66
文章 姚 鑫 · 九月 21, 2021 阅读大约需 9 分钟 第二十二章 SQL命令 CREATE TRIGGER(二) 第二十二章 SQL命令 CREATE TRIGGER(二) SQL触发器代码 如果LANGUAGE SQL(默认),被触发的语句是一个SQL过程块,包括一个SQL过程语句后跟一个分号,或者关键字BEGIN后跟一个或多个SQL过程语句,每个SQL过程语句后跟一个分号,最后以END关键字结束。 被触发的操作是原子的,它要么完全应用,要么根本不应用,并且不能包含COMMIT或ROLLBACK语句。 关键字BEGIN ATOMIC与关键字BEGIN是同义词。 #SQL #Caché 0 0 0 79
文章 姚 鑫 · 十月 7, 2021 阅读大约需 6 分钟 第三十八章 SQL命令 DROP TABLE 第三十八章 SQL命令 DROP TABLE 删除表及其数据(可选)。 #SQL #Caché 0 0 0 160
文章 姚 鑫 · 十月 22, 2021 阅读大约需 6 分钟 第五十三章 SQL命令 INSERT(二) 第五十三章 SQL命令 INSERT(二) 流数据 可以将以下类型的数据值插入到流字段中: #SQL #Caché 0 0 0 56
文章 姚 鑫 · 十一月 7, 2021 阅读大约需 10 分钟 第六十九章 SQL命令 SELECT(一) 第六十九章 SQL命令 SELECT(一) 从数据库中的一个或多个表中检索行。 #SQL #Caché 0 0 0 209
文章 姚 鑫 · 十一月 24, 2021 阅读大约需 2 分钟 第八十六章 SQL命令 USE DATABASE 第八十六章 SQL命令 USE DATABASE 设置当前名称空间和数据库。 大纲 USE [DATABASE] dbname 参数 dbname - 当前进程将使用的名称空间和相应的数据库作为当前名称空间。 描述 USE DATABASE命令将当前进程切换到指定的名称空间及其关联的数据库。 这允许在SQL中更改名称空间。 DATABASE关键字是可选的。 指定的dbname是所需的命名空间和包含数据库文件的对应目录的名称。 指定dbname作为标识符。 命名空间名称不区分大小写。 由于USER是SQL保留字,因此必须使用分隔标识符来指定用户命名空间,如下面的SQL Shell示例所示: #SQL #Caché 0 0 0 75
文章 姚 鑫 · 十二月 11, 2021 阅读大约需 2 分钟 第十二章 SQL谓词 %INSET 第十二章 SQL谓词 %INSET 将一个值匹配到一组生成的值。 #SQL #Caché 0 0 0 73