文章
· 一月 16, 2022 阅读大约需 1 分钟
第二十五章 SQL函数 CHAR

第二十五章 SQL函数 CHAR

返回具有在字符串表达式中指定的ASCII代码值的字符的字符串函数。

大纲

CHAR(code-value)

{fn CHAR(code-value)}

参数

  • code-value - 与字符相对应的整数代码。

描述

Char返回与指定的整数代码值对应的字符。因为 IRIS是UNICODE系统,所以可以为任何UNICODE字符指定整数代码,从065535。如果code-value是超出允许值范围的整数,则CHAR返回NULL

如果代码值是非数字字符串,则CHAR返回一个空字符串('')。如果传递空值,CHAR返回NULL

0 0
0 54
文章
· 二月 13, 2022 阅读大约需 3 分钟
第五十三章 SQL函数 %EXACT

第五十三章 SQL函数 %EXACT

排序规则函数,可将字符转换为精确的排序规则格式。

大纲

%EXACT(expression)

%EXACT expression

参数

  • expression - 字符串表达式,可以是列名、字符串文字、数字或另一个函数的结果,其中底层数据类型可以表示为任何字符类型(如CHARVARCHAR2)。

描述

%Exact返回精确排序规则序列中的表达式。此归类序列按如下方式对值进行排序:

0 0
0 107
文章
· 三月 13, 2022 阅读大约需 5 分钟
第八十章 SQL函数 $LIST(二)

第八十章 SQL函数 $LIST(二)

示例

在以下嵌入式 SQL 示例中,两个 WRITE 语句都返回“Red”,即列表中的第一个元素。第一个默认写入第一个元素,第二个写入第一个元素,因为位置参数设置为 1

0 0
0 75
文章
· 三月 29, 2022 阅读大约需 2 分钟
第九十六章 SQL函数 MOD

第九十六章 SQL函数 MOD

注:IRIS可用,非IRIS版本不可用。

标量数值函数,返回一个数除以另一个数的模数(余数)。

大纲

MOD(dividend,divisor)

{fn MOD(dividend,divisor)}

参数

  • dividend - 数字,它是除法的分子(除数)。
  • divisor - 数字,它是除法的分母(除数)。

MOD 返回 NUMERIC 数据类型,除非被除数是数据类型 DOUBLE。如果dividendDOUBLE,则 MOD 返回 DOUBLE

描述

MOD 返回除数除数的数学余数(模数)。

0 0
0 49
文章
· 四月 21, 2022 阅读大约需 1 分钟
第119章 SQL函数 RIGHT

第119章 SQL函数 RIGHT

标量字符串函数,它从字符串表达式的末尾(最右边的位置)返回指定数量的字符。

大纲

{fn RIGHT(string-expression,count)}

参数

  • string-expression - 字符串表达式,可以是列名、字符串文字或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(例如 CHARVARCHAR)。
  • count - 整数,指定从 string-expression 的结束(最右边)位置返回的字符数。

描述

RIGHT 从字符串表达式的末尾(最右边的位置)返回 count 个字符。如果为任一参数传递 NULL 值,RIGHT 将返回 NULL

0 0
0 44
文章
· 六月 3, 2022 阅读大约需 2 分钟
第161章 SQL函数 YEAR

第161章 SQL函数 YEAR

返回日期表达式的年份的日期函数。

大纲

YEAR(date-expression)

{fn YEAR(date-expression)}

参数

  • date-expression - 计算结果为 日期整数、ODBC 日期字符串或时间戳的表达式。此表达式可以是列名、另一个标量函数的结果或日期或时间戳字面量。

描述

YEAR 将日期整数($HOROLOG 日期)、ODBC 格式日期字符串或时间戳作为输入。 YEAR 以整数形式返回相应的年份。

日期表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。

0 0
0 50
文章
· 六月 19, 2022 阅读大约需 3 分钟
第四章 锁定和并发控制(四)

第四章 锁定和并发控制(四)

避免死锁

增量锁定具有潜在危险,因为它可能导致称为死锁的情况。当两个进程各自对已被另一个进程锁定的变量断言增量锁定时,就会出现这种情况。因为尝试的锁是增量的,所以现有的锁不会被释放。结果,每个进程在等待另一个进程释放现有锁的同时挂起。

举个例子:

  1. 进程 A 发出此命令:lock + ^MyGlobal(15)
  2. 进程 B 发出此命令:lock + ^MyOtherGlobal(15)
  3. 进程 A 发出此命令:lock + ^MyOtherGlobal(15)

LOCK 命令不返回;进程被阻塞,直到进程 B 释放这个锁。

0 0
0 96
文章
· 六月 30, 2022 阅读大约需 2 分钟
第十四章 信号(四)- 多进程任务示例

第十四章 信号(四)- 多进程任务示例

可根据此思想进行多任务启动查询汇总数据。

原理

  • 利用job机制开启后台进程。
  • 利用loop循环减少进程的数量等于开启进程的数量,判断多进程任务是否完成。
  1. 创建表并插入1000W条数据,统计Moeny字段总金额

  2. 创建demo代码如下。

0 0
0 63
文章
· 八月 1, 2022 阅读大约需 4 分钟
第十四章 手动创建 REST 服务(二)

第十四章 手动创建 REST 服务(二)

指定数据格式

可以定义 REST 服务以处理不同格式的数据,例如 JSONXML、文本或 CSVREST 调用可以通过在 HTTP 请求中指定 ContentType 元素来指定它期望发送的数据的形式,并且可以通过在 HTTP 请求中指定 Accept 元素来请求返回数据格式。

DocServer 示例中,GetNamespaces() 方法检查 REST 调用是否使用以下内容请求 JSON 数据:

0 0
0 28
文章
· 八月 11, 2022 阅读大约需 4 分钟
第二十四章 源代码文件 REST API 参考(六)

第二十四章 源代码文件 REST API 参考(六)

Compile

此方法编译源代码文件。它允许一次编译多个源代码文件。它返回一个对应源代码文件对象的数组。

要编译的文件列表作为 JSON 数组在 http 请求的正文中传递。例如,[ "%Api.DocDB.cls", ... ]

有关示例和其他详细信息,请参阅本手册教程章节中的编译文件。

URL

POST http://server:port/api/atelier/v1/namespace/action/compile

此调用需要标头 Content-Type application/json

URL Parameters

  • 可以传递 URL 参数“flags”(默认为“cuk”),该参数将传递给编译器。

0 0
0 143
文章
· 八月 24, 2022 阅读大约需 5 分钟
第十一章 配置数据库(三)

# 第十一章 配置数据库(三)

## 编辑本地数据库的属性

显示的信息取决于数据库是否被镜像。本节确定以下字段:

### 部分编辑非镜像本地数据库属性

单击非镜像数据库的名称可查看以下数据库属性并更改其中一些属性。 (“创建本地数据库”部分描述了其中的许多字段。)

0 0
0 57
文章
· 一月 6, 2023 阅读大约需 3 分钟
第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE

第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE

^PROFILE 实用程序可帮助程序员分析其应用程序例程和类的性能。它分两个阶段完成此任务:

  1. 它收集数据,按例程级别分类,以帮助您确定哪些例程最“有效”。
  2. 它允许选择要收集的例程并在行级别详细显示数据(子例程、过程和单独的行),以便可以“向下钻取”到可能导致性能问题的各个例程。

默认情况下,^PROFILE 捕获最多 5000 个例程的指标;如果没有足够的共享内存可用于最大数量的例程,该实用程序会显示一条消息,说明监视此集合所需的内存页数和可用页数。然后,该实用程序会捕获尽可能多的例程的指标。

Using ^PROFILE

%SYS 命名空间调用 (^PROFILE) 实用程序:

%SYS>do ^PROFILE

当系统提示开始收集数据时,按 Enter

0 0
0 80
文章
· 一月 29, 2023 阅读大约需 3 分钟
第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例

第六十章 使用 ^PERFSAMPLE 监控进程 - 预定义分析示例

预定义分析示例

以下是从过程状态维度开始的分析示例。

在此示例中,^PERFSAMPLE319994 个样本中找到了 76755 个处于可样本状态的进程样本(如果选择了忽略空闲的选项,则为非空闲):

0 0
0 64
文章
· 一月 7, 2021 阅读大约需 2 分钟
FAQ 常见问题系列--RHEL V7.2 上的 Caché 进程故障

RHEL V7.2 上的 Caché 进程故障

InterSystems WRC 处理了几个有关进程错误引发的问题,这些问题可以归因于 Red Hat Linux 最近的一次更新。

RHEL V7.2 (systemd-219-19.el7.x86_64) 中实现的一个新功能可能导致操作系统 IPC(进程间通信)信号量在 非系统用户注销时被解除分配(系统用户,即 UID 编号小于 1000 的用户除外)。

0 0
0 99
文章
· 二月 6, 2021 阅读大约需 2 分钟
第二十六章 Caché 变量大全 $ZCHILD 变量

第二十六章 Caché 变量大全 $ZCHILD 变量

当前进程的包含最后一个子进程的ID。

DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()

DHC-APP>w $zchild
16636
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()

DHC-APP>w $zchild
5412

image

大纲

$ZCHILD
$ZC 

描述

$ZCHILD包含当前进程使用JOB命令创建的最后一个子进程的ID。如果进程没有使用JOB创建子进程,则$ZCHILD返回0(零)。

0 0
0 55
文章
· 二月 22, 2021 阅读大约需 7 分钟
第四十四章 Caché 变量大全 $ZTRAP 变量

第四十四章 Caché 变量大全 $ZTRAP 变量

包含当前错误陷阱处理程序的名称。

大纲

$ZTRAP
$ZT

描述

$ZTRAP包含当前错误陷阱处理程序的行标签名和/或例程名。有三种方法可以设置$ZTRAP:

  • SET $ZTRAP=“location”
  • SET $ZTRAP=“*location”
  • SET $ZTRAP=“^%ET” or “^%ETN”

在这里,位置可以指定为标签(当前例程中的行标签)、^routine(指定外部例程的开始)或label^routine(指定外部例程中的指定标签)。

0 0
0 55
文章
· 三月 9, 2021 阅读大约需 11 分钟
第六章 SQL定义和使用视图

第六章 SQL定义和使用视图

视图是一种虚拟表,由执行时通过SELECT语句或几个SELECT语句的UNION从一个或多个物理表中检索到的数据组成。 SELECT可以通过指定表或其他视图的任意组合来访问数据。因此,存储了视图的视图提供了物理表的所有灵活性和安全性特权。

InterSystemsIRIS®数据平台上的InterSystems SQL支持在视图上定义和执行查询的功能。

注意:不能对以只读方式安装的数据库中存储的数据创建视图。
无法在通过ODBC或JDBC网关连接链接的Informix表中存储的数据上创建视图。这是因为InterSystems IRIS查询转换对这种类型的查询使用FROM子句中的子查询。 Informix不支持FROM子句子查询。

# 创建一个视图

可以通过几种方式定义视图:

0 0
0 126

2021年3月19日,在InterSystems极客俱乐部首次进行的直播课中,InterSystems中国售前支持专家刘皆良( @Jieliang.Liu )分享了一个有趣的主题:告诉你从Caché数据库升级到InterSystems IRIS数据平台的N个理由。直播视频贴上,欢迎大家围观。

0 0
0 125
文章
· 四月 4, 2021 阅读大约需 3 分钟
第十六章 导入SQL Code

第十六章 导入SQL Code

本章介绍如何将SQL代码从文本文件导入Intersystems SQL。导入SQL代码时,IntersystemsIris®数据平台使用动态SQL准备并执行每行SQL。如果遇到无法解析的代码行,则SQL导入跳过该行代码并继续准备和执行后续行,直到它到达文件的末尾。所有SQL代码导入操作导入到当前名称空间。

SQL导入主要用于导入数据定义语言(DDL)命令(例如Create Table),并使用InsertUpdateDelete命令填充表。 SQL导入确实准备并执行SELECT查询,但不创建结果集。

0 0
0 164

近日,InterSystems极客俱乐部举办了线上直播“InterSystems Caché系统运维培训”,这是系列视频之一。InterSystems中国资深售前顾问马浩讲解了“InterSystems Caché系统监控和性能数据采集”。

//player.bilibili.com/player.html?aid=460178370&bvid=BV165411c7nV&cid=327177183&page=1
[这是一个嵌入式链接,但由于您拒绝了访问嵌入式内容所需的 Cookie,您无法直接在网站上进行查看。要查看嵌入式内容,您需要在 Cookie 设置中接受所有 Cookie。]

0 0
0 109
文章
· 五月 3, 2021 阅读大约需 6 分钟
第二章 全局变量结构(一)

第二章 全局变量结构(一)

本章描述全局变量的逻辑视图,并概述全局变量是如何在磁盘上物理存储的。

全局变量的逻辑结构

全局变量是存储在物理InterSystems IRIS®数据库中的命名多维数组。
在应用程序中,全局变量到物理数据库的映射基于当前名称空间——名称空间提供一个或多个物理数据库的逻辑统一视图。

全局命名约定和限制

全局名称指定其目标和用途。有两种类型的全局变量和一组单独的变量,称为“进程私有全局变量”:
- 全局变量 - 这就是所谓的标准全局变量;通常,这些变量被简称为全局变量。它是驻留在当前命名空间中的永久性多维数组。
- 扩展全局引用-这是位于当前命名空间以外的命名空间中的全局引用。
- 进程私有全局变量-这是一个数组变量,只有创建它的进程才能访问。

全局变量的命名约定如下:

0 0
0 65
文章
· 五月 13, 2021 阅读大约需 4 分钟
第五章 管理全局变量(二)

第五章 管理全局变量(二)

在全局变量中查找值

“查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。

要访问和使用此页,请执行以下操作:

  1. 显示“全局变量”页。
  2. 选择要使用的全局变量。为此,请参阅“全局页简介”一节中的步骤2和3。
  3. 单击查找按钮。
  4. 对于查找内容,输入要搜索的字符串。
  5. (可选)清除大小写匹配。默认情况下,搜索区分大小写。
  6. 单击Find First或Find All。

然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。

  1. 如果使用的是Find First,请根据需要单击Find Next以查看下一个节点。
  2. 完成后,单击关闭窗口。

执行批量更换

注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。

0 0
0 64
文章
· 八月 12, 2021 阅读大约需 1 分钟
翻译:Windows、Caché 和病毒扫描程序

我最近看到一个客户问题,是使用 Caché 数据库上运行的病毒扫描程序导致应用程序间歇性变慢和用户响应时间不佳。

出乎意料的是,这是一个常见问题,所以本帖就是提个醒,要将主要 Caché 组件排除在病毒扫描之外。

通常,病毒扫描必须排除 CACHE.DAT 数据库文件和 Caché 二进制文件。 如果防病毒软件扫描 CACHE.DAT 和 InterSystems 文件,那么系统性能受到较大影响。

具体来说,防病毒软件必须排除的 Caché 文件包括:
* Caché 数据库 (CACHE.DAT)。
* Ensemble/bin 或 cache/bin 目录中的 Caché 可执行文件。
* 写入映像日志 (WIJ)。
* 日志目录中的日志文件。

更多详细信息,请参见在线文档。

更多 Caché 文档

0 0
0 137
文章
· 六月 23, 2021 阅读大约需 3 分钟
Yape - 另一个 pButtons 提取程序(自动创建图表)

注(2019 年 6 月):许多内容发生了变化,最新的详细信息请参见此处
注(2018 年 9 月):自本帖首次发布以来,内容已经有了很大改动,我建议使用 Docker 容器版本,以容器形式运行的项目以及详细信息仍然在 GitHub 的同一个地址发布,您可以下载、运行并根据需要进行修改。

0 0
0 98
文章
· 六月 19, 2021 阅读大约需 5 分钟
第十二章 XML其他示例

第十二章 XML其他示例

其他示例

Flexible Reader类

/// desc:灵活读取类
ClassMethod Read(mydir, myfile, class, element)
{
    set reader=##class(%XML.Reader).%New()
    if $extract(mydir,$length(mydir))'="/" {set mydir=mydir_"/"}
    set file=mydir_myfile
    set status=reader.OpenFile(file)
    if $$$ISERR(status) {do $System.Status.DisplayError(status)}

    do reader.Correlate(element,class)

    while reader.Next(.object,.status)
    {
        if $$$ISERR(status) {do $System.Status.DisplayError(status)}
        set status=object.%Save()
0 0
0 94