年度InterSystems IRIS开发者大赛来了,我们特别兴奋能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!
时间: 2021年5月9日 - 6月5日(美东时间)
总奖金超过$22,000美金,比去年提高37%!!!
年度InterSystems IRIS开发者大赛来了,我们特别兴奋能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!
时间: 2021年5月9日 - 6月5日(美东时间)
总奖金超过$22,000美金,比去年提高37%!!!
我们很高兴向您介绍我们新的反馈门户网站--InterSystems Ideas!
我们的目标是改善我们的反馈机制,使您可以建议我们的产品如何发展以满足您的业务挑战。在开发者社区提问是与您的同行就特定的代码问题进行互动的好方法,而我们的客户支持网站WRC则一如既往地是解决实时问题的方法。
这个新的门户是为了获得您更高层次的想法。不是关于今天如何,更多是关于未来,您想看到我们的产品在未来如何更好地工作。您可以发布您自己的反馈,也可以对其他人提供的反馈进行评论/投票。InterSystems将查看你提交的任何反馈,直接回应你的反馈,并且如果您的建议有了任何进展,我们将及时更新状态。
所以,欢迎提出您的想法,为了我们共同的未来!谢谢!
返回一串空格的字符串函数。
SPACE(count)
{fn SPACE(count)}
count - 整数表达式,指定要返回的空格数。SPACE 返回一个空格字符串 count 个空格长。如果 count 是数字字符串、十进制数或混合数字字符串, 会将其解析为其整数部分。如果 count 是负数或非数字字符串将其解析为 0。
要从字符串中删除空格,请使用 LTRIM(前导空格)或 RTRIM(尾随空格)。
注意:不应将 SPACE 函数与 SPACE 归类类型混淆。 SPACE 排序规则在一个值前面添加一个空格,强制将其作为字符串进行评估。为了建立 SPACE 归类,CREATE TABLE 提供了一个 %SPACE 归类关键字,ObjectScript 提供了 %SYSTEM.Util 类的 Collation() 方法。
以下嵌入式 SQL 示例返回名称字段长度的空格字符串:
/// d ##class(PHA.TEST.SQLFunction).Space()
ClassMethod Space()
{
&sql(
SELECT SPACE(LENGTH(name))
INTO :a
FROM Sample.Person
)
if SQLCODE '= 0 {
w !标量数值函数,返回角度的正弦值(以弧度为单位)。
{fn SIN(numeric-expression)}
numeric-expression - 数值表达式。这是一个以弧度表示的角度。SIN 返回 NUMERIC 或 DOUBLE 数据类型。如果 numeric-expression 是数据类型 DOUBLE,则 SIN 返回 DOUBLE;否则,它返回 NUMERIC。
SIN 接受任何数值并将其正弦作为浮点数返回。如果传递一个 NULL 值,SIN 返回 NULL。 SIN 将非数字字符串视为数值 0。
SIN 返回一个精度为 19、小数位数为 18 的值。
SIN 只能用作 ODBC 标量函数(使用大括号语法)。
可以使用 DEGREES 函数将弧度转换为度数。可以使用 RADIANS 函数将度数转换为弧度。
以下示例显示了 SIN 的效果:
SELECT {fn SIN(0.52)} AS Sine
0.496880137843736714
有时,我们在给客户提供技术支持时会得到重复的问题,某事或某人正在使用比预期更多的licenses,我们需要找到什么。
我们经过分析后认为主要有两种原因。 第一种原因是在我们意识到,当应用程序无法运行或尝试通过终端连接并获得“lovely”时,许可证实际已用尽;
<licenses限制超出> 消息:
.png)
第二种情况是最终用户抱怨他们有时无法使用该应用程序,而当问题发生时我们发现已经太晚了。 在这些情况下,我们通常会在 messages.log 中看到以下“License Limit exceeded xxxx times”消息:
.png)
我们要及时发现问题:
对于第一种情况,我们看到问题正在发生,我们有一些替代方案:
.png)
在转储和检查licenses后,大多数客户不需要我们的帮助来了解正在发生的事情。
返回给定数值表达式符号的数值函数。
SIGN(numeric-expression)
{fn SIGN(numeric-expression)}
numeric-expression - 要为其返回符号的数字。SIGN 返回 SMALLINT 数据类型。
SIGN 返回以下内容:
-1 如果 numeric-expression 小于零。numeric-expression 为零,则为 0(零):0、+0 或 -0。numeric-expression 大于零,则为 1。numeric-expression 为 NULL,或者它是非数字字符串,则为 NULL。SIGN 可用作 ODBC 标量函数(使用花括号语法)或 SQL 通用函数。
SIGN 在确定其值之前将数值表达式转换为规范形式。例如,SIGN(-+-+3) 和 SIGN(-3+5) 都返回 1,表示一个正数。
注意:两个负号(连字符)是内嵌注释指示符。因此,指定两个连续负号的 SIGN 参数必须显示为用引号括起来的数字字符串。
以下示例显示了 SIGN 的效果:
SELECT SIGN(-49) AS PosNeg
-1
SELECT {fn SIGN(-0.0)} AS PosNeg
0
SELECT SIGN(-+-16.我现在想做下面的事:
我有一个.gof文件,里面是数据。现在上传这个文件,并根据上传的数据生成dashboard。 上传文件的数据和dashboard的数据源之间怎么样才能联系到一起?
求给一个思路,多谢帮忙。
返回日期时间表达式的秒数的时间函数。
{fn SECOND(time-expression)}
time-expression - 作为列名、另一个标量函数的结果或字符串或数字文字的表达式。它必须解析为时间戳字符串或 $HOROLOG 字符串,其中基础数据类型可以表示为 %Time、%TimeStamp 或 %PosixTime。SECOND 返回一个从 0 到 59 的整数,也可能返回小数秒。秒数是针对 $HOROLOG 或 $ZTIMESTAMP 值、ODBC 格式日期字符串(没有时间值)或时间戳计算的。
时间表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。
要更改默认时间格式,请使用 SET OPTION 命令。
必须提供时间戳字符串 (yyyy-mm-dd hh:mm:ss) 或 $HOROLOG 字符串。 $HOROLOG 字符串可以是完整的日期时间字符串 (63274,37279) 或只是 $HOROLOG (37279) 的时间整数部分。不能提供时间字符串 (hh:mm:ss);无论实际秒数如何,这始终返回 0。
日期时间字符串的时间部分必须是有效时间。
创建dashboard时候,data source 该怎么选。下拉框选项里面没有?
从索引的 Find() 方法返回一组值的函数。
SEARCH_INDEX([[schema_name.]table-name.]index-name[,findparam[,...])
table-name - 可选 — 为其定义了 index-name 的现有表的名称。不能是一个视图。表的 schema_name 是可选的。如果省略,则搜索 FROM 子句中指定的所有表。index-name - 要搜索的索引。现有索引的索引映射的 SqlName。findparam - 可选 — 要传递给索引的 Find() 方法的参数或逗号分隔的参数列表。SEARCH_INDEX 调用 index-nameFind() 方法并返回一组值。可以选择将参数传递给此 Find() 方法。例如,SEARCH_INDEX(Sample.Person.NameIDX) 调用 Sample.Person.NameIDXFind() 方法。
SEARCH_INDEX 可以与 WHERE 子句中的 %FIND 谓词一起使用,以提供对象的 oref,该对象提供封装一组值的抽象表示。这些值通常是查询运行时调用的方法返回的行 ID。 SEARCH_INDEX 调用索引的 Find() 方法来返回这个
我一直希望 VSCode 能够拥有熟悉的 Studio 外观。
值得庆幸的是,VSCode 易于定制,因此您可以为任何元素选择任何颜色。
这是我到目前为止得到的:
Kong提供了一个开源的配置管理工具(用Go语言编写),称为decK(代表声明式Kong)
deck ping Successfully connected to Kong! Kong version: 2.3.3.2-enterprise-edition
deck dump
deck diff
updating service alerts {
"connect_timeout": 60000,
- "host": "172.24.156.176",
+ "host": "192.10.10.在一次重大的版本升级中,建议重新编译你所有命名空间的类和例程。 (主要版本的安装后任务).
do $system.OBJ.CompileAllNamespaces("u")do ##Class(%Routine).CompileAllNamespaces()
为了自动完成这项管理任务并记录任何错误,下面是一个导入并编译到USER命名空间的类的例子,你可以在每次升级后使用它 : admin.utils.cls
InterSystems流程自动化与工作流引擎
集成平台除了集成业务系统,打通数据与业务流程外,另一个核心的功能就是流程自动化(BPA)。
流程自动化涉及几个重要的特性:
其中第4和5点都是和工作流程相关的。
什么是工作流程(Workflow)?它和业务流程(Business Process)有何区别?为何集成平台要涉及对工作流程的管理?
在HIMSS 2022的一次讨论中,小组成员讨论了长期执行登陆火星任务的健康挑战,以及新的交互如何保证宇航员的安全。
将人类送上火星的任务是一项艰巨的任务。但是在这些开创性的旅程中,对宇航员健康主要风险相关的关注却小得令人吃惊。
"你会认为太空飞行真的很复杂,但我们把它归结为五个方面,"美国宇航局总部NASA的首席科学家和科技利用经理朱莉-罗宾逊在HIMSS22的一个小组讨论会上说。
"而且我们在地球上以及在当前和计划中的太空任务中模拟了未来的火星任务。我们利用我们所做的每一次任务来推进我们对如何在未来任务中保持船员安全和健康的理解。"
载人航天飞行期间的这五个主要危险包括:辐射;隔离和禁闭,如长期与相同的人困在一个狭小的空间里的行为和社会心理影响;远离地球,因为你不能离开或迅速与家乡的其他人沟通;失重;以及不友好和封闭的环境,因为宇航员不断重复使用水和重新呼吸相同的空气。
但是美国宇航局可以在地球上和国际空间站上模拟其中一些健康风险,为前往火星的长期任务做准备。这也是将人类送回月球的Artemis计划的一个目标。
Artemis计划将对这些重力、辐射、环境和隔离风险提供一个更好的模拟。当然,月球比火星离家近得多,通信延迟将短得多。
"如果在去火星的路上真的出了问题,船员还是会去火星。”罗宾逊说:"不管是死是活,船员都会去火星,因为物理学定律不会让你更快地回来。
字符串函数,它返回一个删除了尾随空格的字符串。
RTRIM(string-expression)
{fn RTRIM(string-expression)}
string-expression - 字符串表达式,可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。RTRIM 从字符串表达式中去除尾随空格,并将字符串作为 VARCHAR 类型返回。如果 string-expression 为 NULL,则 RTRIM 返回 NULL。如果 string-expression 是一个完全由空格组成的字符串,则 RTRIM 返回空字符串 ('')。
无论要裁剪的输入表达式的数据类型是什么,RTRIM总是返回数据类型VARCHAR。
RTRIM 留下前导空白;要删除前导空格,请使用 LTRIM。要删除任何类型的前导和/或尾随字符,请使用 TRIM。要使用尾随空格或其他字符填充字符串,请使用 RPAD。要创建一串空白,请使用 SPACE。
请注意,RTRIM 可用作 ODBC 标量函数(使用大括号语法)或 SQL 通用函数。
以下嵌入式 SQL 示例从字符串中删除了五个尾随空格。它留下五个前导空白:
/// d ##class(PHA.TEST.SQLFunction).Hi 社区
在本文中,我们将基于Docker程序化地配置一个Apache Web Gateway,使用。:

我们将使用两个镜像:一个用于Web网关,第二个用于IRIS实例。
所有必需的文件都在这 GitHub repository.
我们从git clone开始:
git clone https://github.com/lscalese/docker-webgateway-sample.git
cd docker-webgateway-sample
为了避免权限方面的问题,你的系统需要一个用户和一个组:
需要与容器共享证书文件。 如果你的系统中不存在这些文件,只需执行:
sudo useradd --uid 51773 --user-group irisowner
sudo groupmod --gid 51773 irisowner
sudo useradd –user-group www-data
在这个示例中,我们使用以下三个证书:
字符串函数,它返回一个右填充到指定长度的字符串。
RPAD(string-expression,length[,padstring])
string-expression - 字符串表达式,可以是列名、字符串文字、主机变量或另一个标量函数的结果。可以是可转换为 VARCHAR 数据类型的任何数据类型。字符串表达式不能是流。length - 整数,指定返回的字符串中的字符数。padstring - 可选 — 由一个字符或一串字符组成的字符串,用于填充输入字符串表达式。 padstring 字符或字符附加到 string-expression 的右侧,以提供创建长度字符的输出字符串所需的尽可能多的字符。 padstring 可以是字符串文字、列、主机变量或另一个标量函数的结果。如果省略,则默认为空格字符。RPAD 用尾随填充字符填充字符串表达式。它返回填充到长度字符数的字符串的副本。如果字符串表达式的长度超过 length 个字符,则返回字符串被截断为 length 个字符。
如果 string-expression 为 NULL,则 RPAD 返回 NULL。如果 string-expression 为空字符串 ('') ,则 RPAD 返回一个完全由填充字符组成的字符串。返回的字符串是 VARCHAR 类型。
以指定位数舍入或截断数字的数值函数。
ROUND(numeric-expr,scale[,flag])
{fn ROUND(numeric-expr,scale[,flag])}
numeric-expr - 要四舍五入的数字。一个数值表达式。scale - 计算结果为整数的表达式,该整数指定要舍入到的位数,从小数点开始计数。可以是零、正整数或负整数。如果 scale 是小数, 会将其四舍五入为最接近的整数。flag - 可选 — 一个布尔标志,指定是舍入还是截断 numeric-expr:0=round, 1=truncate。默认值为 0。ROUND 返回与 numeric-expr 相同的数据类型。
此函数可用于将数字舍入或截断为指定的小数位数。
ROUND 将 numeric-expr 舍入或截断以缩放位置,从小数点开始计数。舍入时,数字 5 始终向上舍入。在 ROUND 循环或截断操作后删除尾随零。不返回前导零。
scale 为正数,则在小数点右侧的该位数处进行舍入。如果 scale 等于或大于小数位数,则不会发生舍入或零填充。scale 为零,则舍入到最接近的整数。换句话说,在小数点右边的零位处进行舍入;所有小数位和小数点本身都被删除。scale 为负数,则在小数点左侧的该位数处进行舍入。问题: 通过JDBC连接Oracle19C数据报错 "ORA-28040: No matching authentication protocal"
解决 : 1、在数据库服务器上找到sqlnet.ora文件,一般在oracle安装目录app/oracle/product/19.0.0.0/db_1/network/admin/sqlnet.ora
2、如果有进行修改,没有直接创建
3、slqnet.ora文件新增或修改以下 SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
4、注意事项: ① 如果没有sqlnet.ora文件可以直接创建 vi sqlnet.ora ② 如果有不能直接vi 需要使sed -a 命令追加,否则会导致ora文件乱码 ③ 添加参数后新无需重启数据库或者监听,但是需要修改用户密码,否则会报错
5、修改用户名密码
sqlplus / as sysdba
alter user 用户名 identified by 新密码;
标量字符串函数,它从字符串表达式的末尾(最右边的位置)返回指定数量的字符。
{fn RIGHT(string-expression,count)}
string-expression - 字符串表达式,可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。count - 整数,指定从 string-expression 的结束(最右边)位置返回的字符数。RIGHT 从字符串表达式的末尾(最右边的位置)返回 count 个字符。如果为任一参数传递 NULL 值,RIGHT 将返回 NULL。
RIGHT 只能用作 ODBC 标量函数(使用大括号语法)。
以下示例返回 Sample.Person 表中每个名称最右边的两个字符:
SELECT Name,{fn RIGHT(Name,2)}AS MiddleInitial
FROM Sample.Person
以下嵌入式 SQL 示例显示 RIGHT 如何处理比字符串本身长的计数:
/// d ##class(PHA.TEST.SQLFunction).以下示例代码可实现在Java中通过JDBC向IRIS数据库中写入Stream数据,插入的该Stream大小约为4M,对应在IRIS中字段类型为%Stream.GlobalCharacter。以下代码在IRIS2021上测试成功,供大家参考,
Java代码,
public static void test96()
{
int rt;
String sql="Insert into My_Msg.Test1(MsgControlID,S1) values(?,?)";
try {
IRISDataSource ds = new IRISDataSource();
//172.19.85.72/:1972/YLL IRIS Health 2021
ds.setURL("jdbc:IRIS://<ip>:1972/YLL");
ds.setUser("<username>");
ds.setPassword("<password>");
Connection connection = ds.标量字符串函数,它以相反的字符顺序返回一个字符串。
REVERSE(string-expression)
string-expression - 要反转的字符串表达式。表达式可以是列名、字符串文字、数字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHAR 或 VARCHAR)。REVERSE 返回字符顺序颠倒的字符串表达式。例如 'Hello World!' 返回为 '!dlroW olleH'。这是一个简单的字符串顺序反转,没有额外的处理。
返回的字符串是数据类型 VARCHAR,与输入值的数据类型无关。数字转换为规范形式,数字字符串在反转之前不会转换为规范形式。
前导和尾随空白不受反转的影响。
反转 NULL 值会导致 NULL。
注意:因为 REVERSE 总是返回一个 VARCHAR 字符串,所以某些类型的数据在反转时会变得无效:
以下示例反转 Name 字段值。在这种情况下,这会导致名称按中间名首字母排序:
SELECT Name,REVERSE(Name) AS RevName
FROM Sample.附件中的压缩文件包含了一些我多年来所做的Cache SQL Storage映射的例子。
如果你有现有的globals,并且想通过Objects或SQL暴露它们,你需要设置Cache SQL Storage映射。 如果你没有看到对你的情况有帮助的例子,请给我发一个例子,我可以帮你解决。
下载附件:https://community.intersystems.com/sites/default/files/post-associated-…
开发者们好,
我们在Bilibili的”InterSystems中国“频道 发布了新的视频!
本文档只是给您一个大致的概念,方便您了解IRIS安装的方方面面。并非官方安装手册或者安装建议。生产环境的安装请仔细研究并参照IRIS官方的安装文档
IRIS支持多种Linux系统。详细的列表请参见各个版本的支持列表,比如这个是最新的2021IRIS的支持列表。需要注意的是, CentOS只支持作为测试系统, 并不支持生产系统的安装。
官方文档是以Redhat为主介绍的IRIS安装, 这是IRIS在生产环境中最常用的Linux系统之一。另一个Ubantu, InterSystems提供的docker版本是安装在Ubantu上的。
我自己测试的时候喜欢使用CentOS, 所以后面有具体安装步骤中,使用的CentOS上的记录。
对于生产系统,安装前需要一个硬件配置方案,这个方案通常是您的项目的实施部门根据用户需求提供的。
对于测试系统,只有一个最小的磁盘的要求:1.5G。无论是实体服务器, 虚拟服务器,或者docker container,根据您要测试的内容, 一切以方便为准。如果不做性能测试,我个人经常使用的CentOS虚拟机是2核CPU, 2G或4G内存,没有运行不流畅的问题。
标准的Linux磁盘分区并不适合IRIS的生产运行。哪怕要创建一个尽量接近生产的测试环境,建议您安装软件前要有一个完整的磁盘分区规划。
将字符串重复指定次数的字符串函数。
REPLICATE(expression,repeat-count)
expression - 要重复的字符串表达式。repeat-count - 重复的次数,以整数表示。注意:REPLICATE 函数是 REPEAT 函数的别名。提供 REPLICATE 是为了与 TSQL 兼容。有关详细信息,请参阅重复。
有很多方法可以使用Intersystems生成excel文件,其中一些是ZEN报告、IRIS报告(Logi报告或正式称为JReports),或者我们可以使用第三方Java库,可能性几乎是无限的。
但是,如果你想只用Caché ObjectScript创建一个简单的电子表格呢?(没有第三方应用程序)
在我的案例中,我需要生成包含大量原始数据的报告(财务人员喜欢这些数据),但是我的ZEN/IRIS失败了,给了我一个我想称之为 "零字节的文件",基本上说java的内存用完了,并导致报告服务器上的重载。
这可以用Office Open XML(OOXML)来完成。Office Open XML格式是由一个ZIP包内的一些XML文件组成的。因此,基本上我们需要生成这些XML文件,并将其压缩重命名为.xslx。就这么简单。
这些文件遵循一套简单的惯例,称为开放包装惯例。你需要声明各部分的内容类型,以及告诉消费应用程序应该从哪里开始。
为了创建一个简单的电子表格,我们至少需要5个文件。
workbook.xml
工作簿是各种工作表的容器。
字符串函数,用于替换字符串中的子字符串。
REPLACE(string,oldsubstring,newsubstring)
string - 作为子字符串搜索目标的字符串表达式。oldsubstring - 字符串中要匹配的子字符串。newsubstring - 用于替换 oldsubstring 的子字符串。REPLACE 在字符串中搜索子字符串并替换所有匹配项。匹配区分大小写。如果找到匹配项,它将用 newsubstring 替换 oldsubstring 的每个实例。替换子串可能比它替换的子串长或短。如果找不到子字符串,则 REPLACE 将原样返回原字符串。
无论字符串的数据类型如何,REPLACE 返回的值始终是数据类型 VARCHAR。这允许替换操作,例如 REPLACE(12.3,'.','_')。
REPLACE 不能对字符串、oldsubstring 或 newsubstring 参数使用 %Stream.GlobalCharacter 字段。尝试这样做会生成 SQLCODE -37 错误。
空字符串是字符串值。因此,可以将空字符串用于任何参数值。但是,请注意 ObjectScript 空字符串作为 NULL 传递给 SQL。
NULL 不是 SQL 中的数据值。
各位开发者们好,
欢迎在我们的 Bilibili 频道观看新视频: