文章 姚 鑫 · 五月 10, 2021 阅读大约需 5 分钟 第四章 多维存储的SQL和对象使用(二) 第四章 多维存储的SQL和对象使用(二) 索引 持久化类可以定义一个或多个索引;其他数据结构用于提高操作(如排序或条件搜索)的效率。InterSystems SQL在执行查询时使用这些索引。InterSystems IRIS对象和SQL在执行INSERT、UPDATE和DELETE操作时自动维护索引内的正确值。 标准索引的存储结构 标准索引将一个或多个属性值的有序集与包含属性的对象的对象ID值相关联。 例如,假设我们定义了一个简单的持久化MyApp.Person类,该类具有两个文本属性和一个关于其Name属性的索引: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 54
文章 姚 鑫 · 五月 26, 2021 阅读大约需 6 分钟 第七章 从POP3服务器提取电子邮件 第七章 从POP3服务器提取电子邮件 将附件另存为文件 Content-Disposition标头可以指定附件,可以带文件名,也可以不带文件名。例如: Content-Disposition: attachment; filename=genome.jpeg; 如果Content-Disposition标头确实指定了附件,则%Net.POP3实例可以将邮件中的所有附件保存到文件。要实现这一点,请执行以下操作: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 92
文章 姚 鑫 · 九月 10, 2021 阅读大约需 10 分钟 第十二章 SQL命令 CREATE QUERY 第十二章 SQL命令 CREATE QUERY 创建Query #SQL #Caché 0 0 0 105
文章 姚 鑫 · 九月 28, 2021 阅读大约需 4 分钟 第二十八章 SQL命令 DELETE(二) 第二十八章 SQL命令 DELETE(二) 示例 以下两个示例都删除了TempEmployees表中的所有行。请注意,FROM关键字是可选的: DELETE FROM TempEmployees DELETE TempEmployees 以下示例从Employees表中删除员工编号234: DELETE FROM Employees WHERE EmpId = 234 下面的示例从ActiveEmployees表中删除CurStatus列设置为“RETIRED”的所有行: #SQL #Caché 0 0 0 58
文章 姚 鑫 · 十月 13, 2021 阅读大约需 2 分钟 第四十四章 SQL命令 FREEZE PLANS 第四十四章 SQL命令 FREEZE PLANS 冻结查询计划。 #SQL #Caché 0 0 0 62
文章 姚 鑫 · 十月 28, 2021 阅读大约需 7 分钟 第五十九章 SQL命令 JOIN(一) 第五十九章 SQL命令 JOIN(一) 基于两个表中的数据创建表的SELECT子句。 #SQL #Caché 0 0 0 53
文章 姚 鑫 · 十一月 13, 2021 阅读大约需 11 分钟 第七十五章 SQL命令 START TRANSACTION 第七十五章 SQL命令 START TRANSACTION 开始一个事务。 #SQL #Caché 0 0 0 75
文章 姚 鑫 · 十二月 1, 2021 阅读大约需 6 分钟 第二章 SQL谓词的概述(二) 第二章 SQL谓词的概述(二) 谓词和%SelectMode 所有谓词都使用逻辑(内部存储)数据值进行比较。 但是,有些谓词可以对谓词值执行格式模式转换,将谓词值从ODBC或Display格式转换为Logical格式。 其他谓词不能执行格式模式转换,因此必须始终以Logical格式指定谓词值。 执行格式模式转换的谓词确定是否需要从匹配字段的数据类型(如DATE``%List)进行转换,并确定从%SelectMode设置进行转换的类型。 如果%SelectMode设置为逻辑格式以外的值(例如%SelectMode=ODBC或%SelectMode=Display),则必须以正确的ODBC或Display格式指定谓词值。 #SQL #Caché 0 0 0 41
文章 姚 鑫 · 十二月 16, 2021 阅读大约需 5 分钟 第十七章 SQL谓词 %PATTERN 第十七章 SQL谓词 %PATTERN 用包含字面值、通配符和字符类型代码的模式字符串匹配值。 大纲 scalar-expression %PATTERN pattern 参数 scalar-expression - 一个标量表达式(最常见的是数据列),它的值正在与模式进行比较。 pattern - 一个带引号的字符串,表示要与标量表达式中的每个值匹配的字符模式。 模式字符串可以包含双引号括起来的文字字符、指定字符类型的字母代码以及数字和作为通配符的句点(.)字符。 描述 %PATTERN谓词允许将字符类型代码和字面值的模式匹配到由标量表达式提供的数据值。 如果模式匹配完整的标量表达式值,则返回该值。 如果pattern没有完全匹配任何标量表达式值,%pattern将返回空字符串。 #SQL #Caché 0 0 0 67
文章 姚 鑫 · 一月 3, 2022 阅读大约需 4 分钟 第十三章 SQL聚合函数 XMLAGG 第十三章 SQL聚合函数 XMLAGG 一个聚合函数,它创建一个串接的值字符串。 #SQL #Caché 0 0 0 139
文章 姚 鑫 · 一月 21, 2022 阅读大约需 2 分钟 第三十章 SQL函数 CONCAT 第三十章 SQL函数 CONCAT 标量字符串函数,它返回作为连接两个字符表达式的结果的字符串。 大纲 {fn CONCAT(string-expression1,string-expression2)} 参数 string-expression1, string-expression2 - 要连接的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如CHAR或VARCHAR)。 描述 连接两个字符串以返回连接的字符串。可以使用连接运算符(||)执行完全相同的操作。 可以连接数字或数字字符串的任意组合;连接结果是一个数字字符串。SQL在连接之前将数字转换为规范形式(指数被扩展,前导零和尾随零被删除)。在连接之前,数字字符串不会转换为规范形式。 可以将前导空格或尾随空格连接到字符串。将空值连接到字符串会产生空值;这是行业范围内的SQL标准。 #SQL #Caché 0 0 0 105
文章 姚 鑫 · 二月 6, 2022 阅读大约需 1 分钟 第四十六章 SQL函数 DAY 第四十六章 SQL函数 DAY 返回日期表达式的月份日期的日期函数。 大纲 DAY(date-expression) {fn DAY(date-expression)} 参数 date-expression - 作为列名、另一个标量函数的结果或日期或时间戳文字的表达式。 描述 注意:DAY函数是DAYOFMONTH函数的别名。提供DAY是为了与TSQL兼容。 SELECT day("2022-02-28") AS day 28 SELECT day(+$h) AS day 5 #SQL #Caché 0 0 0 52
文章 姚 鑫 · 二月 20, 2022 阅读大约需 4 分钟 第六十章 SQL函数 GETUTCDATE 第六十章 SQL函数 GETUTCDATE 日期/时间函数,返回当前UTC日期和时间。 大纲 GETUTCDATE([precision]) 参数 precision - 可选-一个正整数,指定时间精度为小数秒的位数。 默认值是0(没有小数秒); 这个默认值是可配置的。 描述 GETUTCDATE返回通用时间常数(UTC)日期和时间作为时间戳。由于UTC时间在地球上的任何地方都是相同的,不依赖于当地时区,也不受当地时差(如夏令时)的影响,因此当不同时区的用户访问同一数据库时,此函数对于应用一致的时间戳非常有用。 #SQL #Caché 0 0 0 64
文章 姚 鑫 · 三月 8, 2022 阅读大约需 1 分钟 第七十五章 SQL函数 LEFT 第七十五章 SQL函数 LEFT 标量字符串函数,返回从字符串表达式的开始(最左位置)开始的指定数量的字符。 大纲 {fn LEFT(string-expression,count)} 参数 string-expression - 字符串表达式,它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHAR或VARCHAR)。 count - 整数,指定从字符串表达式的起始位置返回的字符数。 描述 LEFT返回从字符串开始的指定字符数。 LEFT不填充字符串; 如果指定的字符数大于字符串中的字符数,则LEFT返回该字符串。 如果传递给任何一个参数一个NULL值,左返回NULL。 LEFT只能用作ODBC标量函数(使用花括号语法)。 #SQL #Caché 0 0 0 46
文章 姚 鑫 · 三月 24, 2022 阅读大约需 2 分钟 第九十一章 SQL函数 LOWER 第九十一章 SQL函数 LOWER 将字符串表达式中的所有大写字母转换为小写字母的大小写转换函数。 大纲 LOWER(string-expression) 参数 string-expression - 要将其字符转换为小写的字符串表达式。表达式可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。 描述 LOWER 函数将大写字母转换为小写字母以供显示。这是 UPPER 函数的逆函数。 LOWER 对非字母字符没有影响。它保留不变的标点符号、数字以及前导和尾随空格。 LOWER 不强制将数字解释为字符串。 SQL 将数字转换为规范形式,删除前导零和尾随零。指定为字符串的数字不会转换为规范形式,并保留前导零和尾随零。 LCASE 函数也可用于将大写字母转换为小写字母。 #SQL #Caché 0 0 0 34
文章 姚 鑫 · 四月 9, 2022 阅读大约需 7 分钟 第107章 SQL函数 $PIECE 第107章 SQL函数 $PIECE 返回由分隔符标识的子字符串的字符串函数。 #SQL #Caché 0 0 0 72
文章 姚 鑫 · 五月 10, 2022 阅读大约需 4 分钟 第138章 SQL函数 TIMESTAMPADD 第138章 SQL函数 TIMESTAMPADD 一个标量日期/时间函数,它返回一个新的时间戳,该时间戳是通过将指定日期部分的多个间隔添加到时间戳来计算的。 #SQL #Caché 0 0 0 132
文章 姚 鑫 · 五月 27, 2022 阅读大约需 4 分钟 第154章 SQL函数 UNIX_TIMESTAMP 第154章 SQL函数 UNIX_TIMESTAMP 注:此函数IRIS可用,Cache不可用。 将日期表达式转换为 UNIX 时间戳的日期/时间函数。 大纲 UNIX_TIMESTAMP([date-expression]) 参数 date-expression - 可选 — 作为列名称、另一个标量函数的结果或日期或时间戳文字的表达式。 UNIX_TIMESTAMP 不会从一个时区转换到另一个时区。如果省略 date-expression,则默认为当前 UTC 时间戳。 描述 UNIX_TIMESTAMP 返回一个 UNIX® 时间戳,即自 '1970-01-01 00:00:00'以来的秒数(和小数秒)。 #SQL #Caché 0 0 0 143
文章 姚 鑫 · 六月 14, 2022 阅读大约需 5 分钟 第九章 其他参考资料(二) 第九章 其他参考资料(二) 特殊变量 (SQL) 系统提供的变量。 $HOROLOG $JOB $NAMESPACE $TLEVEL $USERNAME $ZHOROLOG $ZJOB $ZPI $ZTIMESTAMP $ZTIMEZONE $ZVERSION SQL直接支持许多对象脚本特殊变量。这些变量包含系统提供的值。只要可以在SQL中指定文字值,就可以使用它们。 SQL特殊变量名不区分大小写。大多数可以使用缩写来指定。 #SQL #Caché 0 0 0 52
文章 Michael Lei · 七月 2, 2022 阅读大约需 4 分钟 使用嵌入式 python 访问管理门户仪表盘并在网页上显示 cache 表数据 Hi 社区, 在这篇文章中,我将解释如何通过使用嵌入式python访问管理门户系统的仪表盘信息和表数据。 ##嵌入式 Python #SQL #管理门户 #InterSystems IRIS for Health 0 0 0 151
文章 Jingwei Wang · 七月 28, 2022 阅读大约需 4 分钟 InterSystems SQL 的使用 - 第七部分 - Stored Procedures 定义 Stored Procedures 可以使用以下方式定义stored procedures 使用DDL定义存储过程 使用类方法定义存储过程 使用DDL定义存储过程 CREATE PROCEDURE 可以创建一个查询,它总是作为一个存储过程被预测。一个查询可以返回一个单一的结果集。 #SQL #InterSystems IRIS for Health 0 0 0 107
文章 Hao Ma · 三月 19 阅读大约需 4 分钟 IRIS/Caché SQL优化经验分享 - Bitmap(位图)索引 正确的使用Bitmap Index (位图索引)来代替普通索引,可以成百上千倍的提高SQL查询性能。 先来看看Bitmap索引和普通索引的区别。我来在Patient表的Sex字段上创建两个索引 idxSex: 普通索引 bidxSex: bitmap索引 然后创建10个病人数据,查看索引的内容: #SQL #新手 #InterSystems IRIS 0 0 0 39
文章 姚 鑫 · 三月 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 113
文章 姚 鑫 · 四月 7, 2021 阅读大约需 12 分钟 第十九章 存储和使用流数据(BLOBs和CLOBs) 第十九章 存储和使用流数据(BLOBs和CLOBs) Intersystems SQL支持将流数据存储为Intersystems Iris ®DataPlatform数据库中的 BLOBs(二进制大对象)或 CLOBs(字符大对象)的功能。 流字段和SQL Intersystems SQL支持两种流字段: #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 109
文章 姚 鑫 · 四月 25, 2021 阅读大约需 10 分钟 第五章 优化查询性能(四) 第五章 优化查询性能(四) 注释选项 可以在SELECT、INSERT、UPDATE、DELETE或TRUNCATE表命令中为查询优化器指定一个或多个注释选项。 注释选项指定查询优化器在编译SQL查询期间使用的选项。 通常,注释选项用于覆盖特定查询的系统范围默认配置。 语法 语法/*#OPTIONS */(在/*和#之间没有空格)指定了一个注释选项。 注释选项不是注释; 它为查询优化器指定一个值。 注释选项使用JSON语法指定,通常是“key:value”对,例如: /*#OPTIONS {"optionName":value} */。 支持更复杂的JSON语法,比如嵌套值。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 104
文章 姚 鑫 · 五月 12, 2021 阅读大约需 4 分钟 第五章 管理全局变量(一) 第五章 管理全局变量(一) 管理门户提供管理全局变量的工具,系统类提供执行某些相同任务的方法。本章介绍如何使用这些工具。 一般建议 与ObjectScript命令SET、MERGE、KILL和其他命令一样,这里描述的工具提供了直接访问操作全局变量的权限。如果通过全局访问删除或修改,则会绕过所有对象和SQL完整性检查,并且没有撤消选项。因此,在执行这些任务时要非常小心,这一点很重要。(查看和导出不会影响数据库,并且是安全活动。) 使用本章中介绍的工具时,请确保以下事项: IRIS使用哪些全局变量。并不是所有这些都被视为“系统”全局变量-也就是说,即使没有选中“系统”复选框,它们中的一些也是可见的。其中一些全局变量存储代码,包括的代码。 确保知道应用程序使用哪些全局变量。 即使应用程序从不执行任何直接全局访问,应用程序也会使用全局变量。请记住,如果创建持久类,则它们的数据和任何索引都存储在全局变量中,全局变量的名称基于类名(默认情况下)。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 1 0 68
文章 姚 鑫 · 五月 27, 2021 阅读大约需 5 分钟 第八章 处理收到的电子邮件 第八章 处理收到的电子邮件 处理收到的电子邮件 本节介绍如何处理通过%Net.POP3检索到的电子邮件(%Net.MailMessage)。 Message Basics 检索电子邮件(%Net.MailMessage)后,通常首先确定它是哪种类型的邮件以及如何阅读它;也就是说,它是否是多部分邮件以及各部分是否是二进制的。在此步骤中,您可以使用ContentType属性。或者,可以使用IsBinary、IsHTML和IsMultiPart属性,它们间接提供与contentType相同的信息。 如果消息是多部分消息,则每个部分都是%Net.MailMessagePart的一个实例。 Message Headers 消息本身和消息的每个部分都有一组标头。 #SQL #Caché #InterSystems IRIS #InterSystems IRIS for Health 0 0 0 127
文章 姚 鑫 · 九月 11, 2021 阅读大约需 3 分钟 第十三章 SQL命令 CREATE ROLE 第十三章 SQL命令 CREATE ROLE 创建角色 大纲 CREATE ROLE role-name 参数 role-name - 要创建的角色的名称,它是一个标识符。角色名称不区分大小写。 描述 CREATE ROLE命令可创建角色。角色是可以分配给多个用户的一组命名权限。一个角色可以分配给多个用户,一个用户可以分配多个角色。角色在系统范围内可用,它不限于特定的命名空间。 #API #SQL #Caché 0 0 0 65
文章 姚 鑫 · 九月 29, 2021 阅读大约需 9 分钟 第二十九章 SQL命令 DISTINCT 第二十九章 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 #Caché 0 0 0 400
文章 姚 鑫 · 十月 14, 2021 阅读大约需 9 分钟 第四十五章 SQL命令 FROM(一) 第四十五章 SQL命令 FROM(一) 一个SELECT子句,指定要查询的一个或多个表。 #SQL #Caché 0 0 0 68