第四十章 SQL函数 DATALENGTH

267 阅读2分钟

「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战

第四十章 SQL函数 DATALENGTH

返回表达式中字符数的函数。

大纲

DATALENGTH(expression)

参数

  • expression - 表达式,可以是列的名称、字符串字面值或另一个标量函数的结果。 基础数据类型可以是字符类型(如CHARVARCHAR)、数字或数据流。

DATALENGTH返回INTEGER数据类型。

描述

注意:DATALENGTHCHAR_LENGTHCHARACTER_LENGTH函数是相同的。 对于新代码,建议使用CHAR_LENGTH函数。 DATALENGTH是为TSQL兼容性而提供的。

第三章 包选项

注:Caché 遇到不包含包名的类的引用,并且类名以“%”开头时,则该类在“%Library”包中。

概述包

Caché 支持包,包将特定数据库中的相关类分组。包提供以下好处:

  • 为开发人员构建更大的应用程序和彼此共享代码提供了一种更简单的方法。
  • 更容易避免类之间的名称冲突。
  • 以一种简洁、简单的方式提供了一种逻辑方式来表示对象字典中的SQL模式:一个包对应一个模式。

包只是一种将相关类分组到公共名称下的方法。例如,一个应用程序可以有一个“Accounting”系统和一个“Inventory”系统。组成这些应用程序的类可以组织成一个“Accounting”包和一个“Inventory”包:

这些类中的任何一个都可以使用它们的全名(由包名和类名组成)来引用:

 Do ##class(Accounting.Invoice).Method()
 Do ##class(Inventory.Item).Method()

如果包名可以通过上下文确定,那么包名可以省略:

Do ##class(Invoice).Method()

与类一样,包定义存在于Caché 数据库中。有关将包从数据库映射到名称空间的信息

包名

包名是一个字符串。它可能包含“.”字符,但不能有其他标点符号。包名以"."分割,每个部分都是一个子包,并且可以有多个子包。如果给一个类命名为Test.Subtest。TestClass,然后这表明包的名称是Test,子包的名称是SubTest,类的名称是TestClass。

包名的长度和用法有几个限制:

  • 包名受长度限制。
  • 在命名空间中,每个包的名称必须是惟一的,不考虑大小写。因此,名称空间中不能同时存在“ABC”和“abc”包,“abc.def”包和子包被视为“ABC”包的一部分。