这个pTemplate参数是一个模板文件 *.tmpl, 示例如下所示:
Do ##class(Ens.Util.HTML.Parser).testFile("http://localhost:57772/csp/samples/menu.csp","C:\test\MenuFind.tmpl",.tOut)
 

文件 MenuFind.tmpl示例如下:

<b>[sessionevents.csp]</b></A></td><td>{sesstimeoutcomment}
<b>[zipcode.csp]</b>[Demo of using ][ to process client events on the application server.]<A,HREF={zipcodehref}>
=<b>[xmlclasses.csp]</b>[Demo of displaying class instances as XML.]<A,HREF={xmlclasseshref}>
<a,href=http://www.intersystems.com><img,src={cspiscgifname}>
=[CSP Samples Directory][Display class instances as XML]+<tr><A><b>{pageincspdirectory}</b>+
[CSP Samples Directory][Display class instances as XML]<tr><A><b>{pageincspdirectoryagain}
[Text that cannot be matched]{variablethatdoesnotexist}
~<title>{pagetitle}

该示例结果如下:

tOut("cspiscgifname")="created-with-csp.gif"
tOut("pageincspdirectory",1)="xmlimport.csp"
tOut("pageincspdirectory",2)="xmlquery.csp"
tOut("pageincspdirectory",3)="zipcode.csp"
tOut("pageinscpdirectoryagain")="xmlimport.csp"
tOut("pagetitle")="CSP Samples Menu"
tOut("sesstimeoutcomment")="Example of how to use the session timeout event."
tOut("xmlclasseshref")="showsource.csp?PAGE=/csp/samples/xmlclasses.csp"
tOut("zipcodehref")="showsource.csp?PAGE=/csp/samples/zipcode.csp"

*.tmpl语法解析如下:

[]  普通文本。
<>   HTML 标签
<,=> 要匹配具有特定属性的 <> 标记。
{}  大括号中的项目匹配字面文本,并将其保存在大括号中命名的下标下。
=  从 HTML 输入的起始位置搜索后续模板内容
~  从 HTML 输入的起始位置开始搜索后续模板内容,但前提是 HTML 流已到达终点。 
++ 在 + 符号之间出现的项目会重复匹配。

压缩是将数据库中的可用空间移至数据库末尾,但是这个时候数据库占的磁盘空间并没有变化,截断是将数据库压缩过的可用可空间腾出来,这个时候磁盘空间才会真的空出来。所以要对数据库进行先压缩,再截断。才能获得更多的磁盘空间。

是否影响业务运行,需要查看您当前业务系统中使用的版本,请和WRC确认您的版本是否可以进行数据库压缩和截断,且建议不要在业务高峰期做。

对,只能用SQL。
也可以再ensemble里面的消息查看器里面查看,如果您是测试环境,可以用下面的方式。如果是生产环境,就要先测试一下了。注意:这个只支持3M以内的数据查看
1. 新增一个类

Class iscru.interop.MsgFilterAssistant Extends EnsPortal.MsgFilter.Assistant
{
ClassMethod GetSQLCondition(pOperator As %String, pProp As %String, pValue As %String, pDisplay As %Boolean = 0, pNoIndex As %Boolean = 0) As %String
 {
  if (pValue = "") || ((pOperator '= "Like") && (pOperator '= "NotLike")) quit ##super(pOperator, pProp, pValue, pDisplay, pNoIndex)
  
  if ("%%" = $extract(pValue, *-2, *-1))
  {
    set pValue = "'" _ $extract(pValue, 1, *-3) _ "' ESCAPE '" _ $extract(pValue, *) _ "'"
  }
  else
  {
    set pValue = "'" _ $replace(pValue, "'", "''") _ "'"
  }
  quit "substring(" _ pProp _ ", 1, 3000000) " _ $case(pOperator, "Like": "LIKE", "NotLike": "NOT LIKE") _ " " _ pValue
 }
}

2. 在所在命名空间下执行:

set ^EnsPortal.Settings("MessageViewer", "AssistantClass") = "<在步骤1所创建的类名>"

3. 在消息查看器中增加查询条件,使用LIKE。


你可以用SQL query : SUBSTRING 将字符流显示出来,然后用LIKE 进行条件搜索:

例如:这个例子中的 Notes就是%Stream.GlobalCharacter类型数据

SELECT Name ,SUBSTRING(Notes,1) FROM  Sample.MyTable  WHERE SUBSTRING(Notes ,1) LIKE '%First%'

CREATE TABLE Sample.YoungPeople

AS SELECT Name,Age

FROM Sample.People

WHERE Age < 21

或者

DO $SYSTEM.SQL.Schema.QueryToTable("SELECT Name,Age,AVG(Age) AS AvgInit FROM Sample.Person WHERE Age < 21","Sample.Youth",1,.errors)

如果您是2016版本,可以使用$SYSTEM.SQL.QueryToTable()
但是这个方法只复制查询中指定的字段的定义,包括数据类型、最大长度和最小值/最大值,但不复制字段的数据约束,如默认值、要求值或唯一值