首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

添加和使用XSLT扩展函数

IRIS创建XSLT扩展函数,然后在样式表中使用它们,如下所示:对于XSLT2.0(Saxon处理器),可以使用名称空间com.intersystems.xsltgateway.XSLTGateway...的evaluate函数或名称空间http://extension-functions.intersystems.com的evaluate函数对于XSLT1.0(Xalan处理器),只能在名称空间http...返回值可以是:标量变量(字符串或数字)。流对象。这允许返回超过字符串长度限制的超长字符串。流必须包装在新窗口中的%XML.XSLT.StreamAdapter实例,使XSLT处理器能够读取流。...使用以下格式:缓存条目总数对于每个条目:求值参数总数所有求值参数计算值缓存还包括可缓存的函数名称的过滤器列表。请注意以下事项:可以在筛选器列表添加或删除函数名。可以清除过滤器列表。...函数名和参数的每个组合都是求值缓存的一个单独条目。可以使用%XML.XSLT2.Transformer的方法来操作求值缓存

4.3K20

使用动态SQL(一)

使用动态SQL(一)动态SQL简介动态SQL是指在运行时准备执行的SQL语句。在动态SQL,准备和执行SQL命令是单独的操作。...可以将%SelectMode指定为%New()类方法的第一个参数,或直接进行设置,如以下两个示例所示: SET tStatement = ##class(%SQL.Statement)....搜索路径被指定为带引号的字符串,其中包含模式名称或逗号分隔的一系列模式名称InterSystems IRIS以从左到右的顺序搜索列出的模式。...InterSystems IRIS会搜索每个指定的架构,直到找到第一个匹配的表,视图或存储过程名称。因为模式是按指定顺序搜索的,所以不会检测到歧义的表名。仅搜索当前名称空间中的架构名称。...%ObjectSelectMode允许指定如何在从SELECT语句生成的结果集类定义类型类为swizzleable类的列。

1.8K30
您找到你想要的搜索结果了吗?
是的
没有找到

使用嵌入式SQL(一)

成功执行的嵌入式SQL语句将生成一个缓存的查询。该嵌入式SQL的后续执行将使用缓存的查询,而不是重新编译嵌入式SQL源。这提供了嵌入式SQL的缓存查询的性能优势。...在执行的这一点上,将生成优化的缓存查询计划,管理门户的“ SQL语句”列表中所示。列出的“ SQL语句”位置是包含嵌入式SQL代码的例程的名称。...#SQLCompile Path(或#Import)指定模式搜索路径,用于解析SELECT、CALL、INSERT、UPDATE、DELETE和TRUNCATE表等数据管理命令未限定的表、视图和存储过程名称...Studio可以识别&sql指令,使用可识别SQL的着色器SQL代码语句进行语法着色。当预处理器遇到&sql指令时,它将随附的SQL语句交给SQL查询处理器。...然后,预处理器用此代码(或包含该代码的标签的调用)替换&sql指令。在Studio,可以根据需要查看生成的代码,方法是查看为类或例程生成的INT代码(使用“查看”菜单的“查看其他代码”选项)。

1.2K10

使用%UnitTest进行单元测试

使用%UnitTest进行单元测试 本教程的第二部分介绍了如何使用%UnitTest包InterSystems IRIS代码进行单元测试。...在每个方法至少使用一个断言(AssertX)。每个测试方法名称都以Test开头。 将测试类导出到文件。 打开终端切换到包含要测试的类的名称空间。...在终端,运行%UnitTest.Manager.RunTest,向传递包含测试类文件的(子)目录的名称。 查看测试报告。终端的输出包括网页的URL,该网页以易于阅读的表格形式显示结果。...OnAfterAllTests-在测试类的所有测试方法执行完毕后执行一次。 Manager 使用此类启动测试。方法包括: RunTest -在目录执行一个测试或一组测试。...注意,目录名(在本例为mytest)是一套测试的名称,也是^UnitTestRoot指定的目录的子级。运行Manager.RunTest(“mytest”)运行存储在mytest目录的所有测试。

93310

使用管理门户SQL接口(一)

选择模式对于数据类型是有意义的,逻辑存储格式与所需的显示格式(显示或ODBC)不同,例如Intersystems Iris日期和时间和Objectscript%List结构化数据。...通过单击此缓存查询名称,以显示关于缓存查询的信息,以及显示显示计划或执行缓存查询的进一步链接。关闭管理门户或停止InterSystems IRIS不会删除缓存的查询或重置缓存的查询编号。...非查询SQL语句,CREATE TABLE,也会显示缓存的查询名。 然而,这个缓存的查询名称被创建然后立即删除; 下一个SQL语句(查询或非查询)重用相同的缓存查询名称。...从Show History列表执行SQL语句将更新执行时间(本地日期和时间戳),增加计数(执行次数)。可以过滤Show History列表,如下所示:在过滤框中指定一个字符串,然后按Tab键。...从Show History检索到的SQL语句进行任何更改,都会将其作为新语句存储在Show History; 这包括不影响执行的更改,更改字母大小写、空格或注释。

8.3K10

使用嵌入式SQL(二)

因此,在访问输出主机变量之前,所有简单嵌入式SQL语句都应该测试SQLCODE=0。架构名称解析表名,视图名或存储过程名是合格的(指定架构名称)或不合格的(不指定架构名称)。...如果名称未指定架构名称,则InterSystems IRIS会按以下方式解析架构名称:数据定义:InterSystems IRIS使用系统范围内的默认架构来解析不合格的名称。...数据管理:InterSystems IRIS包含嵌入式SQL语句的类或例程使用#SQLCompile路径和/或#Import预处理程序指令指定的架构搜索路径。...#Import和#SQLCompile Path指令是具有不同功能的可能模式名称的相互独立列表。二者之一或两者均可用于为不合格的表,视图或存储过程名称提供架构名称。...,dob和visit:主机变量值name"Weiss,Blanche"dob44051visit"2001-03-15 11:11:00"请注意,dob是$HOROLOG格式。

68720

全局变量结构(一)

全局变量结构(一) 本章描述全局变量的逻辑视图,概述全局变量是如何在磁盘上物理存储的。 全局变量的逻辑结构 全局变量存储在物理InterSystems IRIS®数据库的命名多维数组。...在应用程序,全局变量到物理数据库的映射基于当前名称空间——名称空间提供一个或多个物理数据库的逻辑统一视图。 全局命名约定和限制 全局名称指定目标和用途。...如果全局名称以“%”开头(但不是“%Z”或“%z”),则此全局名称InterSystems IRIS系统使用。%GLOBAL通常存储在IRISSYS或IRISLIB数据库。...在IRISSYS数据库InterSystems将除以“z”、“Z”、“%z”和“%Z”开头的所有全局变量名称保留给自己。...对于出于兼容性原因仍在使用的旧归类,“pre-ISM-6.1”,下标的规则有更多限制。例如,字符下标不能以控制字符作为初始字符;整数下标可以使用的位数也有限制。

74630

使用动态SQL(二)

每次准备一条SQL语句时,InterSystems IRIS都会搜索查询缓存,以确定是否已经准备缓存了相同的SQL语句。 (如果两个SQL语句仅在文字和输入参数的值上不同,则认为它们是“相同的”。)...如果查询缓存不存在准备好的语句,则InterSystems IRIS将创建一个缓存的查询。如果查询缓存已经存在准备好的语句,则不会创建新的缓存查询。...输入参数,使用提供给%Execute()方法的相应参数值。在%Prepare()之后,可以使用%GetImplementationDetails()方法列出输入主机变量和?查询的输入参数。...下面的示例显示%PrepareClassQuery()调用Sample.Person类定义的ByName查询,传递一个字符串以将返回的名称限制为以该字符串值开头的名称:/// d ##class(PHA.TEST.SQL...每个参数由一元素,一个类型和一个值表示:类型c(常量)后跟一个文字值;类型v(变量)后跟输入主机变量名称(不带冒号);类型 ?是输入参数,后跟第二个问号。如果没有参数,则参数列表为空字符串。

62620

SQL定义表(一)

如果创建了一个具有非限定名称的表或其他项,InterSystems IRIS将为分配默认模式名和相应的持久类包名。...当不同的名称空间具有不同的默认架构名称时,DefaultSchema()方法将返回当前名称空间的默认架构名称。注意:当更改默认的SQL模式名称时,系统将自动清除系统上所有名称空间中的所有缓存查询。...模式搜索路径当访问一个现有的表(或视图,或存储过程)进行DML操作时,将从模式搜索路径中提供一个非限定的名称。 按照指定的顺序搜索模式,返回第一个匹配项。...在嵌入式SQL,可以使用#SQLCompile Path指令或#Import指令来提供架构搜索路径,系统间IRIS使用该路径来解析非限定名称。...(InterSystems TSQL提供了$IDENTITY伪列名称作用相同。)ALTER TABLE无法修改或删除RowID字段定义。

1.2K10

使用多维存储(全局变量)(三)

使用多维存储(全局变量)(三) 在全局变量复制数据 若要将全局变量(全部或部分)的内容复制到另一个全局变量(或局部数组),请使用ObjectScript Merge命令。...全局变量的数据进行排序 存储在全局变量的数据会根据下标的值自动排序。...(因为数据不适合缓存)。...$SORTBEGIN函数为全局变量(或其中的一部分)启动了一种特殊模式,在这种模式,进入全局变量的数据集被写入一个特殊的临时缓冲区,并在内存(或临时磁盘存储)中进行排序。...下面的代码提供了一个名称间接引用的示例,在这个示例,使用@操作符包含全局引用的字符串进行解引用: /// w ##class(PHA.TEST.Global).GlobalIndirect() ClassMethod

79720

全局变量结构(二)

全局变量结构(二) 全局变量物理结构 全局变量使用高度优化的结构存储在物理文件。管理此数据结构的代码也针对运行InterSystems IRIS的每个平台进行了高度优化。...用于存储全局变量的物理结构是完全封装的;应用程序不会以任何方式担心物理数据结构。 全局变量存储在磁盘上的一系列数据块;每个块的大小(通常为8KB)是在创建物理数据库时确定的。...InterSystems IRIS维护一个缓冲池-经常引用的块的内存缓存-以降低从磁盘获取块的成本。...压缩下标和数据以节省磁盘空间和宝贵的内存缓存空间。 存储引擎针对事务处理操作进行了优化:插入、更新和删除都很快。与关系系统不同,InterSystems IRIS从不需要重建索引或数据来恢复性能。...存储引擎针对最大并发访问进行了优化。 数据会自动群集,以实现高效检索。 引用全局变量 全局变量驻留在特定的InterSystems IRIS数据库

34220

解释SQL查询计划(二)

除了SQL语句名称、计划状态、位置和文本之外,还为缓存查询提供了以下附加信息: 计数Count:运行此查询次数的整数计数。 如果该查询产生不同的查询计划(例如向表添加索引),则将重置该计数。...由并行运行的实现生成的查询没有单独跟踪性能统计信息。 InterSystems IRIS不记录“自然”查询的性能统计数据。...但是,对于在#Import指令中指定搜索路径的DML Embedded SQL命令,#Import搜索路径显示在默认模式设置,并且该模式路径设置为空白。...解冻计划单击刷新页面按钮后,计划时间戳将更新为计划解冻的时间。 查询SQL语句 可以使用SQLTableStatements()存储查询返回指定表的SQL语句。...InterSystems IRIS支持以下类: INFORMATION_SCHEMA.STATEMENTS:包含当前名称空间中的当前用户可以访问的SQL语句索引项。

1.7K20

SQL查询数据库(二)

要调用SQL函数,请指定SQL过程的名称。可以在可能指定标量表达式的任何地方以SQL代码调用SQL函数。函数名称可以使用架构名称进行限定,也可以不限定。...查询串行对象属性使用默认存储(%Storage.Persistent)从类映射为SQL的子表的串行对象属性也将在该类映射表的单个列映射。该列的值是串行对象属性的序列化值。...谓词可以包含伪列%KEY,%VALUE或两者的引用。一些示例应有助于阐明如何使用FOR SOME%ELEMENT子句。以下返回最喜欢的颜色包括“红色”的每个人的名字和最喜欢的颜色的列表。...收到这些Java对象后,它将从它们中提取所需的列值生成结果集。 InterSystems IRIS会尽可能自动应用此优化。这种优化是自动的,用户看不见。...查询和企业缓存协议Enterprise Cache Protocol (ECP)使用企业缓存协议(ECP)的InterSystems IRIS实现(例如分布式缓存群集)可以同步查询结果。

2.3K30

使用管理门户SQL接口(二)

通过单击模式名称标题,可以按字母升序或降序列出模式。 每个列出的模式都提供指向关联表、视图、过程和查询(缓存的查询)列表的链接。...类名是在Intersystems类参考文档的相应条目的链接。类名是通过删除标点字符,标识符和类实体名称中所述从表名派生的唯一包。...Sharded:如果表是一个分片主表,那么表信息将显示分片本地类和表的名称链接到InterSystems类参考文档相应的条目。...如果该表是一个碎片本地表,表信息将显示碎片主类和表的名称链接到InterSystems类参考文档相应的条目。 只有选中“System”复选框时,才会显示“Shard-local”表。...数据迁移向导 - 运行向导以从外部源迁移数据,创建一个Intersystems Iris类定义来存储它。

5.1K10

简介global

简介global InterSystems IRIS®的核心功能之一是多维存储引擎。此功能允许应用程序以紧凑、高效的多维稀疏数组存储数据。这些数组称为全局数组。...本章介绍: 什么是全局变量(globals ),以及可以对执行的操作。 全局变量的逻辑和物理结构,包括在分布式数据库体系结构中使用全局变量。 如何使用全局变量在应用程序存储和检索数据。...事务性-InterSystems IRIS提供定义事务边界的命令;可以启动、提交或回滚事务。在回滚的情况下,事务内全局变量所做的所有修改都将被撤消;数据库的内容将恢复到事务前的状态。...进程私有全局变量也不是并发的;它们只能由创建它们的进程访问。进程专用全局可以通过多字符名称前缀:^||或^|"^"|轻松地与全局区分开来。 例如 一个简单的例子就可以展示全局变量的易用性和性能。...许多应用程序需要存储难以用关系表示的数据。使用全局变量,可以定义自定义结构,通过对象方法将其提供给外部客户端。

93320

缓存查询(一)

缓存查询提高了性能 第一次准备查询时,SQL引擎会对进行优化,生成将执行该查询的程序(一个或多个InterSystems IRIS®Data Platform例程的集合)。...然后将优化的查询文本存储缓存查询类。如果随后尝试执行相同(或类似)的查询,SQL引擎将找到缓存的查询直接执行该查询的代码,从而绕过优化和代码生成的需要。...InterSystems SQL将所有缓存的查询存储在一个位置,即IRISLOCALDATA数据库。但是,缓存查询是特定于名称空间的。每个缓存的查询都由准备(生成)它的名称空间标识。...因为缓存查询使用现有的查询计划,所以它为现有查询提供了操作的连续性。基础表的更改(添加索引或重新定义表优化统计信息)不会对现有缓存查询产生任何影响。...多个符号也会生成单独的缓存查询:ABS(+?)。ABS(++?)。因此,最好使用无符号变量ABS(?)。或ABS(:Num),可以为提供有符号或无符号数字,而无需生成单独的缓存查询。

1.2K20

SQL性能优化简介

全局变量命名策略:可以使用USEEXTENTSET参数为数据和索引查找操作指定更短、更高效的散列全局名称。索引:可以为一个表字段或一组字段定义索引。...表数据优化根据对表典型数据的分析,可以执行以下操作来优化表访问:Tune Table:检查典型的表数据生成ExtentSize(行数)、选择性(具有特定值的行的百分比)和BlockCount元数据。...要优化在生产系统上运行的SQL,应该将默认值更改为手动配置,增加每进程的最大内存设置。分片分片是跨多个系统对数据及其关联缓存进行分区。...分片集群跨多个InterSystems IRIS实例(称为碎片数据服务器)水平(即按行)大型数据库表进行分区,同时允许应用程序通过单个实例(称为碎片主数据服务器)透明地访问这些表。...分片环境的最佳性能通常是通过组合使用分片表(通常非常大的表)和非分片表来实现的快速命令InterSystems SQL支持快速选择、快速插入和快速截断表。

68420

优化查询性能(三)

通过缓存的查询结果集运行Show Plan,使用:i%Prop语法将文本替换值存储为属性: SET cqsql=2 SET cqsql(1)="SELECT TOP :i%PropTopNum...默认情况下,模块执行处理使用结果填充内部临时文件(内部临时表)。...从可能的计划列表,使用复选框选择要比较的计划,然后按比较显示计划与统计信息按钮以运行这些计划显示SQL统计信息。 带有ALL限定符的EXPLAIN()方法显示查询的所有执行计划。...如果该文件已存在,则InterSystems IRIS会覆盖该文件。 eos 可选-语句末尾分隔符,用于分隔Infile列表的各个缓存查询。指定为带引号的字符串。默认值为“GO”。...该实用程序将ExportSQL^%qarDDLExport()实用程序生成的文件作为输入,缓存查询”一章的“将缓存查询列出到文件”一节中所述。

1.2K20

定义和使用存储过程

定义和使用存储过程 本章介绍如何在IntersystemsIRIS®数据平台上定义和使用Intersystems SQL存储过程。...它讨论了以下内容: 存储过程类型的概述 如何定义存储过程 如何使用存储过程 何列出存储过程及其参数。 概述 SQL例程是可执行的代码单元,可以由SQL查询处理器调用。...与关系数据库不同,Intersystems Iris使可以将存储过程定义为类的方法。实际上,存储过程只不过是SQL可用的类方法。在存储过程,可以使用基于对象的全系列Intersystems的功能。...要定义方法存储过程,只需定义一个类方法设置SqlProc关键字: Class MyApp.Person Extends %Persistent [DdlAllowed] { /// This...函数的名称存储函数(在本例为“Square”)的SQL名称,该名称由定义该函数的模式(包)名称限定(在本例为“MyApp”)。

1K30
领券