文章
· 十月 29, 2021 阅读大约需 5 分钟
第六十章 SQL命令 JOIN(二)

第六十章 SQL命令 JOIN(二)

单向外部联接

IRIS支持单向外部联接:左外部联接和右外部联接。

使用标准的“inner”联接时,当一个表的行链接到第二个表的行时,第一个表中找不到第二个表中对应行的行将从输出表中排除。

使用单向外联接时,即使第二个表中没有匹配项,第一个表中的所有行也会包括在输出表中。使用单向外连接,第一个表会从第二个表中取出相关信息,但不会因为第二个表中缺少匹配项而牺牲自己的行。

例如,如果查询首先列出Table1并创建一个左外部联接,那么它应该能够看到Table1中的所有行,即使它们在Table2中没有对应的记录。

0 0
0 39
文章
· 十一月 30, 2021 阅读大约需 1 分钟
第一章 SQL谓词的概述(一)

第一章 SQL谓词的概述(一)

描述计算结果为真或假的逻辑条件。

使用谓词

谓词是一个条件表达式,其计算结果为布尔值(truefalse)。

谓词可以如下使用:

0 0
0 59
文章
· 一月 20, 2022 阅读大约需 7 分钟
第二十九章 SQL函数 COALESCE

第二十九章 SQL函数 COALESCE

返回第一个非空表达式的值的函数。

大纲

COALESCE(expression,expression [,...])
  • expression - 要计算的一系列表达式。多个表达式被指定为逗号分隔的列表。此表达式列表限制为140个表达式。

描述

COALESSE函数按从左到右的顺序计算表达式列表,并返回第一个非空表达式的值。如果所有表达式的计算结果都为NULL,则返回NULL

字符串返回时保持不变;保留前导和尾随空格。数字以规范形式返回,去掉了前导零和尾随零。

返回值的数据类型

非数字表达式(如字符串或日期)必须都属于相同的数据类型,并返回该数据类型的值。指定数据类型不兼容的表达式会导致SQLCODE-378错误,并显示DataType不匹配错误消息。可以使用CAST函数将表达式转换为兼容的数据类型。

0 0
0 93
文章
· 二月 18, 2022 阅读大约需 2 分钟
第五十八章 SQL函数 FLOOR

第五十八章 SQL函数 FLOOR

数值函数,返回小于或等于给定数值表达式的最大整数。

大纲

FLOOR(numeric-expression)

{fn FLOOR(numeric-expression)}

参数

  • numeric-expression - 下限要计算的数字。

FLOOR返回与NUMERIC-EXPRESSION相同的数据类型。

描述

FLOOR返回小于或等于NUMERIC-EXPRESSION的最接近的整数值。返回值的小数位数为0。当numeric-expression为空值、空字符串(‘’)或非数字字符串时,FLOOR返回NULL

请注意,Floor可以作为ODBC标量函数(使用花括号语法)调用,也可以作为SQL常规函数调用。

0 0
0 48
文章
· 三月 6, 2022 阅读大约需 2 分钟
第七十三章 SQL函数 LCASE

第七十三章 SQL函数 LCASE

将字符串中的所有大写字母转换为小写字母的大小写转换函数。

大纲

LCASE(string-expression)

{fn LCASE(string-expression)}

参数

  • string-expression - 要将其字符转换为小写的字符串表达式。表达式可以是列名、字符串文字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如CHARVARCHAR)。

描述

LCASE将大写字母转换为小写字母用于显示。
它对非字母字符没有影响。
它保留没有改变的标点符号以及前导和末尾的空格。

LCASE不强制将数字解释为字符串。
SQL将数字转换为规范形式,删除前导和后导零。
SQL不将数字字符串转换为规范形式。

LOWER函数也可以用来将大写字母转换为小写字母。

0 0
0 45
文章
· 三月 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 68

你好!

我想知道,如果在没有运行%BuildIndices()方法的情况下向表中插入索引,是否会有问题。

需要注意的是,在索引之前插入的数据对于检索来说并不重要,所以在索引之前插入的数据在查询中不显示并不是问题。

我问这个问题的原因是,我想避免在需要插入这种索引的大表中进行索引重建。

我正在使用Cache 2018.1。

谢谢。

José

Hi!

I'd like to know if there are any issues if an index is inserted into a table without running the %BuildIndices() method.

It's important to note that data inserted before the index is not important for retrieval, so it's not a problem data inserted before the index don't show up in queries.

0 2
0 139
文章
· 四月 22, 2022 阅读大约需 1 分钟
IRIS SQL网关连接Oracle19C数据库报错解决

问题:
通过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 新密码;

0 2
0 143
文章
· 五月 4, 2022 阅读大约需 2 分钟
第132章 SQL函数 STR

第132章 SQL函数 STR

将数字转换为字符串的函数。

大纲

STR(number[,length[,decimals]])

参数

  • number - 解析为数字的表达式。它可以是字段名称、数字或其他函数的结果。如果指定了字段名称,则使用逻辑值。
  • length - 可选 — 一个整数,指定所需输出字符串的总长度,包括所有字符(数字、小数点、符号、空格)。默认值为 10
  • decimals - 可选 — 一个整数,指定要包含的小数点右侧的位数。默认值为 0。

描述

STR 将数字转换为 STRING 格式,根据长度和小数的值截断数字。长度参数必须足够大以包含数字的整个整数部分,并且,如果指定小数,则该小数位数加 1(用于小数点)。如果长度不够大,则 STR 将返回一个星号 (*) 字符串,该字符串等于长度。

0 0
0 44
文章
· 五月 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 函数将各种格式的日期和时间字符串转换为标准时间戳,数据类型为 TIMESTAMPTO_TIMESTAMP 返回具有以下格式的时间戳:

0 0
0 91
文章
· 六月 7, 2022 阅读大约需 9 分钟
第二章 数据类型(一)

第二章 数据类型(一)

指定 SQL 实体(如列)可以包含的数据类型。

描述

此处描述了以下主题:
- 支持的 DDL 数据类型及其类属性映射表
- 数据类型优先级用于从具有不同数据类型的数据值中选择最具包容性的数据类型
- 日期、时间、PosixTime 和时间戳数据类型
- 使用SqlCategory和用户定义的标准
- 对 1840 年 12 月 31 日之前的日期的可配置支持

0 0
0 79
文章
· 六月 24, 2022 阅读大约需 4 分钟
第九章 设置结构化日志记录(一)

第九章 设置结构化日志记录(一)

IRIS 支持结构化日志记录。

创建多个日志,每个日志用于不同的目的。从以前的产品迁移过来的客户可以像过去一样利用这些日志,但现在还可以将所有日志信息导入一个单一的、中央的、机器可读的日志文件——结构化日志。然后可以将此文件与第三方分析工具一起使用。

本文概述了结构化日志中的信息,展示了日志示例,并描述了如何启用结构化日志记录。

结构化日志中可用的信息

当启用结构化日志记录时,系统会将相同的数据写入结构化日志,它也会写入其他日志(无论哪个)。例如,系统将相同的行写入messages.log 和结构化日志。

启用结构化日志记录后,结构化日志包含以下所有信息:

0 0
0 54
文章
· 七月 13, 2022 阅读大约需 3 分钟
第四章 使用嵌入式 Python(一)

第四章 使用嵌入式 Python (一)

嵌入式 Python 允许使用 Python 作为编程 IRIS 应用程序的本机选项。

预备知识

使用嵌入式 Python 所需的 Python 版本取决于运行的平台。

在 Microsoft Windows 上,IRIS 安装工具包安装正确版本的 Python(当前为 3.9.5),仅用于嵌入式 Python。如果在开发机器上并希望将 Python 用于一般用途,建议从 https://www.python.org/downloads/ 下载并安装相同的版本。

0 0
0 116
文章
· 一月 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 是一个用于将地理编码(地址和地理坐标的限定)应用于地址数据的库。有了它,就可以从街道名称中获取邮局格式的邮政编码和完整地址。非常有用,因为许多记录都有地址。

0 0
0 62
文章
· 三月 22 阅读大约需 4 分钟
IRIS/Caché SQL优化经验分享 - Collation(排序规则)

这个帖子内容有点深。如果您读的有困难,请直接跳过这篇,对绝大多数IRIS/Caché使用者,它一点都不重要。

数据库表的Collation(排序规则)本来是一个非常简单的概念。说到它是因为曾经发现过由Collation引起的性能问题。

我试图用一句话来解释数据库的排序规则:

  • 绝大多数数据库因为业务查询需要,保存的字符型数据是不分大小写的。当你执行一个 order by, group by, distinct,like等等条件查询时,因为这个不分大小写的collation,你得到的结果也不分大小写。例如,对名字做group by, James, james一定是在一组。
  • 如果非要区分大小写,会在查询的时候使用一个函数
  • 因为要操作非英语的字符集,以及可以被当作字符看待的数字类型,适应不同的排序规则,一个数据库可能有很多种Collation类型。

很简单,在表一级定义Collation的SQL语句是:

0 0
0 17
文章
· 四月 1, 2021 阅读大约需 7 分钟
第十四章 使用SQL Shell界面(三)

第十四章 使用SQL Shell界面(三)

SQL元数据、查询计划和性能指标

显示元数据

SQL Shell支持MMetadata命令以显示有关当前查询的元数据信息。

对于每个结果集项目,此命令列出以下元数据:列名称(SQL字段名称),键入(ODBC数据类型整数代码),PRE(精度或最大长度),比例(最大分数数字),NULL(BOOLEAN:1 = NULL允许,0 =不允许空值),标签(标题标签,请参阅列别名),表(SQL表名称),架构(架构名称),CTYPE(客户端数据类型,请参阅%SQL.statementColumn ClientType属性)。

SHOW STATEMENT

可以执行查询,然后发出show语句或显示st以显示准备好的SQL语句。默认情况下,必须执行查询。可以避免通过设置executemode =延迟执行查询,从而发出查询,然后发出show语句sql shell命令。

0 0
0 186
文章
· 四月 19, 2021 阅读大约需 11 分钟
第三章 优化表(二)

第三章 优化表(二)

调整表计算值

调优表操作根据表中的代表性数据计算和设置表统计信息:
- ExtentSize,它可能是表中的实际行数(行数),也可能不是。
- 表中每个属性(字段)的选择性。
可以选择性地阻止单个属性的选择性计算。
- 属性的离群选择性,其中一个值比其他值出现得更普遍。
有效的查询可以利用离群值优化。
- 标识某些属性特征的每个属性的注释。
- 每个属性的平均字段大小。
- 表的SQL Map NameBlockCountSource of BlockCount

0 0
0 92
文章
· 五月 2, 2021 阅读大约需 5 分钟
第一章 简介global

第一章 简介global

InterSystems IRIS®的核心功能之一是其多维存储引擎。此功能允许应用程序以紧凑、高效的多维稀疏数组存储数据。这些数组称为全局数组。

本章介绍:
- 什么是全局变量(globals ),以及可以对其执行的操作。
- 全局变量的逻辑和物理结构,包括在分布式数据库体系结构中使用全局变量。
- 如何使用全局变量在应用程序中存储和检索数据。
- 如何使用全局变量。

特点

全局变量提供了一种在持久的多维数组中存储数据的易于使用的方法。

例如,可以使用名为^Settings的全局变量将值“Red”与键“Color”相关联:

SET ^Settings("Color")="Red"

可以利用全局变量的多维特性来定义更复杂的结构:

0 0
0 136

在Ensemble中使用SQL进行批量插入
你好,社区。

我试图在一个表中插入多个值。下面是简单的SQL语句。

插入到表X中

values ('Name', 'Address', 'Phone')

我怎样才能在一条语句中进行多次插入(行)?

数值不在另一个表中,所以我不能使用选择进入。

谢谢。

吉米-克里斯蒂安

Hello Community,

I am trying to insert multiple values in a table. Below is the simple sql statement.

Insert Into TableX

values ('Name', 'Address', 'Phone')

0 1
0 93
问题
· 九月 13, 2021
怎么获取Caché的CDC数据?

1.Caché数据库有没有办法配置然后用sql读取数据库实时变化的数据,类似于mssql那样?我看了可以写类去读取global获取journal的值,但是怎么用sql读呢?

2.不行的话,那用什么方式可以读取到journal日志文件,并输出日志文件的内容?

先谢谢大家了!!!

0 7
0 303
文章
· 九月 29, 2021 阅读大约需 1 分钟
第三十章 SQL命令 DROP AGGREGATE

第三十章 SQL命令 DROP AGGREGATE

删除用户定义的聚合函数。

大纲

DROP AGGREGATE name

参数

  • name - 要删除的用户定义聚合函数的名称。名称可以是限定的(schema.aggname),也可以是非限定的(aggname)。非限定名称采用默认架构名称。

描述

DROP Aggregate命令删除用户定义的聚合函数(UDAF)。使用CREATE Aggregate命令创建用户定义的聚合函数。

如果尝试删除不存在的UDAF,SQL会发出SQLCODE-428错误,并显示如下消息:User Defined Aggregate Function Sample.SecondHighest does not exist.

0 0
0 59
文章
· 十月 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 72