文章
· 六月 7, 2022 阅读大约需 3 分钟
绕过ODBC使用ObjectScript访问远程系统

绕过ODBC使用ObjectScript访问远程系统

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!   

我们经常会遇到这样的情况,由于各种原因ODBC是访问一个远程系统的唯一选择。如果你只需要检查或改变表,这就足够了。但你不能直接执行一些命令或改变一些Global。

特别感谢@Anna.Golitsyna 启发我发表此文。

这个例子提供了3种 SQLprocedure 方法来实现访问远程系统这个目的,如果其他的访问方式被阻止,通常是被一些防火墙阻止。

0 0
0 80
文章
· 九月 17, 2021 阅读大约需 9 分钟
第十八章 SQL命令 CREATE TABLE(五)

第十八章 SQL命令 CREATE TABLE(五)

定义外键

外键是引用另一个表的字段;存储在外键字段中的值是唯一标识另一个表中的记录的值。此引用的最简单形式如下例所示,其中外键显式引用Customers表中的主键字段CustID

CREATE TABLE Orders (
   OrderID INT UNIQUE NOT NULL,
   OrderItem VARCHAR,
   OrderQuantity INT,
   CustomerNum INT,
   CONSTRAINT OrdersPK PRIMARY KEY (OrderID),
   CONSTRAINT CustomersFK FOREIGN KEY (CustomerNum) REFERENCES Customers (CustID)
   )

最常见的情况是,外键引用另一个表的主键字段。但是,外键可以引用RowID(ID)或标识列。在任何情况下,外键引用都必须存在于被引用的表中,并且必须定义为唯一的;被引用的字段不能包含重复值或NULL

0 0
0 80
文章
· 九月 21, 2021 阅读大约需 9 分钟
第二十二章 SQL命令 CREATE TRIGGER(二)

第二十二章 SQL命令 CREATE TRIGGER(二)

SQL触发器代码

如果LANGUAGE SQL(默认),被触发的语句是一个SQL过程块,包括一个SQL过程语句后跟一个分号,或者关键字BEGIN后跟一个或多个SQL过程语句,每个SQL过程语句后跟一个分号,最后以END关键字结束。

被触发的操作是原子的,它要么完全应用,要么根本不应用,并且不能包含COMMITROLLBACK语句。
关键字BEGIN ATOMIC与关键字BEGIN是同义词。

0 0
0 80

关键字:IRIS, IntegratedML, 机器学习, Covid-19, Kaggle

目的

最近,我注意到一个用于预测 Covid-19 患者是否将转入 ICU 的 Kaggle 数据集。 它是一个包含 1925 条病患记录的电子表格,其中有 231 列生命体征和观察结果,最后一列“ICU”为 1(表示是)或 0(表示否)。 任务是根据已知数据预测患者是否将转入 ICU。

这个数据集看起来是所谓的“传统 ML”任务的一个好例子。数据看上去数量合适,质量也相对合适。它可能更适合在 IntegratedML 演示套件上直接应用,那么,基于普通 ML 管道与可能的 IntegratedML 方法进行快速测试,最简单的方法是什么?

0 0
0 79

各位开发者们好,

欢迎在我们的 Bilibili 频道观看新视频:

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

0 0
0 79
文章
· 二月 2, 2022 阅读大约需 6 分钟
第四十二章 SQL函数 DATEADD

第四十二章 SQL函数 DATEADD

一个日期/时间函数,它返回一个时间戳,计算方法是在一个日期或时间戳中添加或减去若干日期部件单位(如小时或天)。

0 0
0 78
文章
· 十月 15, 2021 阅读大约需 8 分钟
第四十六章 SQL命令 FROM(二)

[toc]

第四十六章 SQL命令 FROM(二)

%PARALLEL

这个可选关键字在查询的FROM子句中指定。
它建议 IRIS使用多个处理器(如果适用)并行处理查询。
这可以显著提高使用一个或多个COUNTSUMAVGMAXMIN聚合函数和/或GROUP BY子句的某些查询的性能,以及许多其他类型的查询。
这些通常是处理大量数据并返回小结果集的查询。
例如,SELECT AVG(SaleAmt) FROM %PARALLEL User.AllSales GROUP BY Region使用并行处理。

0 0
0 78
文章
· 四月 4, 2022 阅读大约需 2 分钟
第102章 SQL函数 %OBJECT

第102章 SQL函数 %OBJECT

标量函数,它打开一个流对象并返回相应的 oref

大纲

%OBJECT(stream)

参数

  • stream - 作为流字段名称的表达式。

描述

%OBJECT 用于打开一个流对象并返回流字段的 oref(对象引用)。

流字段上的 SELECT 返回流字段的完全形成的 oid(对象 ID)值。流字段上的 SELECT %OBJECT 返回流字段的 oref(对象引用)。这在以下示例中显示,其中 NotesPicture 都是流字段:

0 0
0 77
文章
· 五月 16, 2021 阅读大约需 6 分钟
第二章 使用%UnitTest进行单元测试

第二章 使用%UnitTest进行单元测试

本教程的第二部分介绍了如何使用%UnitTest包对InterSystems IRIS代码进行单元测试。完成本教程的这一部分后,将能够:

  • 解释%UnitTest包中三个主要类的角色。
  • 列出基于%UnitTest包的单元测试类和方法的要求。
  • 创建并执行方法的单元测试。
  • 浏览%UnitTest.Manager创建的测试报告。
  • 执行单元测试时,使用%UnitTest.TestCase方法初始化和还原数据库数据。

什么是%UnitTest?

%UnitTest包是一组为IRIS提供测试框架的类。在结构上,它类似于xUnit测试框架。%UnitTest为创建和执行以下各项的单元测试提供类和工具:

0 0
0 77
文章
· 十二月 21, 2021 阅读大约需 7 分钟
第一章 聚合函数概述

第一章 聚合函数概述

计算列的所有值并返回单个聚合值的函数。

支持聚合函数

聚合函数执行与单个列中的一个或多个值相关的任务,并返回单个值。
支持的功能有:

0 0
0 77
文章
· 五月 14, 2021 阅读大约需 3 分钟
第六章 临时全局变量和IRISTEMP数据库

第六章 临时全局变量和IRISTEMP数据库

对于某些操作,可能需要全局变量的功能,而不需要无限期保存数据。例如,可能希望使用全局对某些不需要存储到磁盘的数据进行排序。对于这些操作,InterSystems IRIS提供了临时全局机制。该机制的工作方式如下:

  • 对于应用程序名称空间,可以定义一个全局映射,以便将具有特定命名约定的全局变量映射到IRISTEMP数据库,该数据库是一个特殊的数据库,如下所述。

例如,可以定义一个全局映射,以便将名称为^AcmeTemp*的所有全局变量映射到IRISTEMP数据库。
- 当代码需要临时存储数据并再次读取它时,代码将向使用该命名约定的全局变量写入数据,并从全局变量读取数据。

例如,要保存值,代码可能会执行以下操作:

 set ^AcmeTempOrderApp("sortedarray")=some value

然后,稍后代码可能会执行以下操作:

0 0
0 76
文章
· 四月 29, 2021 阅读大约需 10 分钟
第九章 冻结计划

第九章 冻结计划

大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。

对系统软件的更改也可能导致不同的查询计划。通常,这些升级会带来更好的查询性能,但软件升级可能会降低特定查询的性能。冻结计划使可以保留(冻结)查询计划,以便查询性能不会因系统软件升级而改变(降级或提高)。

0 0
0 75
文章
· 七月 29, 2022 阅读大约需 33 分钟
InterSystems SQL 的优化 - 第一部分 - 定义和构建索引

什么时候使用索引

索引提供了一种机制,通过维护常用数据的分类子集来优化查询。确定哪些字段应该被编入索引需要一些思考:太少或错误的索引,关键查询会运行得太慢;太多的索引会减慢INSERT和UPDATE的性能(因为索引值必须被设置或更新)。

索引什么

为了确定添加索引是否能提高查询性能,从管理门户的SQL界面运行查询,并在Performance中注意 global引用的数量。添加索引,然后重新运行查询,注意 global引用的数量。一个有用的索引应该减少 global引用的数量。你可以通过使用%NOINDEX关键字作为WHERE子句或ON子句条件的前言来阻止索引的使用。

你应该对JOIN中指定的字段(属性)进行索引。例如,LEFT OUTER JOIN从左表开始,然后查看右表,因此,你应该对右表的字段进行索引。在下面的例子中,你应该为T2.f2编制索引。一个INNER JOIN应该在两个ON子句字段上都有索引。

1 0
0 75
文章
· 十一月 24, 2021 阅读大约需 2 分钟
第八十六章 SQL命令 USE DATABASE

第八十六章 SQL命令 USE DATABASE

设置当前名称空间和数据库。

大纲

USE [DATABASE] dbname

参数

  • dbname - 当前进程将使用的名称空间和相应的数据库作为当前名称空间。

描述

USE DATABASE命令将当前进程切换到指定的名称空间及其关联的数据库。
这允许在SQL中更改名称空间。
DATABASE关键字是可选的。

指定的dbname是所需的命名空间和包含数据库文件的对应目录的名称。
指定dbname作为标识符。
命名空间名称不区分大小写。

由于USERSQL保留字,因此必须使用分隔标识符来指定用户命名空间,如下面的SQL Shell示例所示:

0 0
0 75
文章
· 三月 22, 2022 阅读大约需 2 分钟
第八十九章 SQL函数 LOG

第八十九章 SQL函数 LOG

返回给定数值表达式的自然对数的标量数值函数。

大纲

{fn LOG(expression)}

参数

  • expression - 数值表达式。

LOG 返回 NUMERICDOUBLE 数据类型。如果表达式为 DOUBLE 数据类型,则 LOG 返回 DOUBLE;否则,它返回 NUMERIC

描述

LOG 返回表达式的自然对数(以 e 为底)。 LOG 返回一个精度为 21、小数位数为 18 的值。

LOG 只能用作 ODBC 标量函数(使用大括号语法)。

示例

以下示例返回整数的自然对数:

0 0
0 74
文章
· 一月 22, 2022 阅读大约需 8 分钟
第三十一章 SQL函数 CONVERT

第三十一章 SQL函数 CONVERT

将给定表达式转换为指定数据类型的函数。

CONVERT(datatype,expression[,format-code])

{fn CONVERT(expression,datatype)}

参数

  • expression - 要转换的表达式。
  • datatype - 要将表达式转换为的数据类型。
  • format - 可选-指定日期和时间格式的整数代码,用于在日期/时间/时间戳数据类型和字符数据类型之间进行转换。
    此参数仅用于通用标量语法形式。

描述

这里描述了CONVERT函数的两种不同实现。
两者都将一种数据类型中的表达式转换为另一种数据类型中的相应值。
两者都执行日期和时间转换。

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

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

示例

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

0 0
0 74

InterSystems SQL支持在InterSystems IRIS数据平台数据库中将流数据存储为BLOB(Binary Large Objects 二进制大对象)或CLOB(Character Large Objects字符大对象)的能力。

InterSystems SQL支持两种流字段:

  • 字符流:用于大量的文本。
  • 二进制流:用于图像、音频或视频。

BLOBs和CLOBs可以存储多达4GB的数据(JDBC和ODBC规范规定的限制)。除了在通过ODBC或JDBC客户端访问时如何处理字符编码转换(如Unicode到多字节)外,BLOB和CLOB的操作在各方面都是相同的:BLOB中的数据被视为二进制数据,决不转换为其他编码,而CLOB中的数据被视为字符数据,在必要时进行转换。

0 0
0 74
文章
· 九月 22, 2021 阅读大约需 3 分钟
第二十三章 SQL命令 CREATE USER

第二十三章 SQL命令 CREATE USER

创建用户帐户。

大纲

CREATE USER user-name IDENTIFY BY password

CREATE USER user-name IDENTIFIED BY password

参数

  • user-name - 要创建的用户的名称。名称是最多128个字符的标识符。它可以包含Unicode字母。用户名不区分大小写。
  • password - 此用户的密码。密码必须至少为3个字符,并且不能超过32个字符。密码区分大小写。密码可以包含Unicode字符。

描述

CREATE USER命令使用指定的密码创建用户帐户。

0 0
0 74