Campaign | Partitions | partition[n] | dataSources
选择 Campaign | Partitions | partition[n] | dataSources 以配置 IBM® Campaign 与数据库(包括其自己的系统表)交互的方式。
这些属性指定 IBM® Campaign 可以访问的数据库,这些属性还可以控制查询构成方式的众多方面。
您在 Campaign 中添加的每个数据源由 partition[n] > dataSources > DATA_SOURCE_NAME 下面的一个类别来表示。
*
每个分区的 Campaign 系统表数据源必须在 Marketing Platform 中命名为 UA_SYSTEM_TABLESdataSources > UA_SYSTEM_TABLES 类别必须存在于每个 Campaign 分区的“配置”页面中。
AccessLibrary
描述
Campaign 根据数据源类型来选择其数据源访问库。 例如,libora4d.so 用于 Oracle 连接,而 libdb24d.so 用于 DB2® 连接。在大多数情况下,缺省选择便是恰当的。但是,如果能证明缺省值在您的 Campaign 环境中是错误的,那么可以更改 AccessLibrary 属性。 例如,64 位 Campaign 提供两个 ODBC 访问库:一个适用于兼容 unixODBC 实现 (libodb4d.so) 的 ODBC 数据源,另一个兼容 DataDirect 实现(libodb4dDD.so,由 Campaign 用于访问诸如 Teradata 之类的数据源)。
用于 AIX® 的其他库
描述
Campaign 包含两个附加库以用于 AIX® ODBC 驱动程序管理器(后者支持 ODBC ANSI API 而非 ODBC Unicode API):
*
*
如果确定应该覆盖缺省访问库,请根据需要来设置此参数(例如,设置为 libodb4dDD.so,以覆盖缺省选择 libodb4d.so)。
缺省值
未定义任何缺省值。
AliasPrefix
描述
AliasPrefix 属性指定在使用新维表并写入到新表的情况下,Campaign 如何构成 Campaign 自动创建的别名。
请注意,每个数据库都具有最大标识长度;请查看正在使用的数据库的文档以确保设置的值不超过此数据库的最大标识长度。
缺省值
A
AllowBaseJoinsInSelect
描述
此属性确定 Campaign 是否尝试对选择进程中使用的基本表(来自同一数据源)执行 SQL 连接;否则,将在 Campaign 服务器上执行等效连接。
缺省值
TRUE
有效值
TRUE | FALSE
AllowSegmentUsingSQLCase
描述
AllowSegmentUsingSQLCase 属性指定在满足特定配置条件时,Campaign 细分进程是否将多个 SQL 语句整合到单个 SQL 语句中。
在满足以下条件时,将此属性设置为 TRUE 会显著提升性能:
*
*
*
在此情况下,Campaign 生成单个 SQL CASE 语句细分市场,然后在 Campaign 应用程序服务器上进行“按字段细分”处理。
缺省值
TRUE
有效值
TRUE | FALSE
AllowTempTables
描述
AllowTempTables 属性指定 Campaign 是否在数据库中创建临时表。创建临时表可显著提高营销活动的业绩。如果为 TRUE 时,那么已启用临时表。
如果启用临时表,那么在每次对数据库发出查询时(例如,通过细分进程),将在数据库中的临时表中写入产生的标识。如果发出其他查询,Campaign 可能使用该临时表从数据库中检索行。
如果未启用临时表,那么 Campaign 将在服务器存储器中保留所选标识。其他查询将从数据库中检索标识,并将其与服务器存储器中的标识相匹配。
有关控制临时表连接的更多信息,请参阅 MaxTempTableJoinPctSelectAll 和 MaxTempTableJoinPctWithCondition。
您必须具有在数据库中进行写入的相应特权才能使用临时表。特权由您在连接到数据库时提供的数据库登录名来确定。
缺省值
TRUE
ASMSaveDBAuthentication
描述
ASMSaveDBAuthentication 属性指定在您登录到 Campaign 并在您先前尚未登录到的数据源中映射表时,Campaign 是否在 IBM® EMM 中保存您的用户名和密码。
如果将此属性设置为 TRUE,那么在您登录到数据源时 Campaign 不会提示您输入用户名和密码。如果将此属性设置为 FALSE,那么在您每次登录到数据源时 Campaign 都会提示您输入用户名和密码。
缺省值
TRUE
有效值
TRUE | FALSE
ASMUserForDBCredentials
描述
ASMUserForDBCredentials 属性指定分配给 Campaign 系统用户的 IBM® EMM 用户名(访问 Campaign 系统表时必需)。
缺省情况下未定义此属性。
缺省值
未定义任何缺省值。
BulkInsertBlockSize
描述
BulkInsertBlockSize 属性定义 Campaign 一次传递给数据库的数据块的最大大小(以记录数量为单位)。
缺省值
100
BulkInsertRequiresColumnType
描述
仅当需要支持 Data Direct ODBC 数据源时,才需要 BulkInsertRequiresColumnType 属性。当使用批量(数组)插入时,请将此属性设置为 TRUE(针对 DataDirect ODBC 数据源)。将此属性设置为 FALSE 可兼容大部分其他 ODBC 驱动程序。
缺省值
FALSE
BulkReaderBlockSize
描述
BulkReaderBlockSize 属性定义 Campaign 一次从数据库中读取的数据块的大小(以记录数量为单位)。
缺省值
2500
ConditionalSQLCloseBracket
描述
ConditionalSQLCloseBracket 属性指定用于指示原始 SQL 定制宏中条件细分结尾的括号类型。仅当存在临时表时,才会使用括在指定的左方括号和右方括号中的条件细分。如果没有临时表,那么会将其忽略。
缺省值
}(右花括号)
ConditionalSQLOpenBracket
描述
ConditionalSQLOpenBracket 属性指定用于指示原始 SQL 定制宏中条件细分开头的括号类型。仅当存在临时表时,才会使用 ConditionalSQLOpenBracketConditionalSQLCloseBracket 属性所指定的括号中括起的条件细分,如果没有临时表,那么将忽略这些条件细分。
缺省值
{(左花括号)
ConnectionCacheSize
描述
ConnectionCacheSize 属性指定 Campaign 在高速缓存中为每个数据源保持的连接数量。
缺省情况下 (N=0),Campaign 将为每个操作建立一个指向数据源的新连接;如果 Campaign 保持连接的高速缓存并且连接可供复用,那么 Campaign 将使用高速缓存的连接,而不是建立新连接。
如果设置不为 0,那么在进程使用完连接后,Campaign 会将指定数量的连接保持打开状态,时间长度是 InactiveConnectionTimeout 属性所指定的值。 在此时间到期后,将从高速缓存中除去连接并且连接关闭。
缺省值
0(零)
DateFormat
描述
Campaign 使用 DateFormat 属性的值来确定在使用 Campaign 宏语言或在解释日期列中的数据时如何解析 date 格式的数据。
DateFormat 属性的值设置为 Campaign 期望从此数据源中接收数据的格式。此值必须与您的数据库用于显示日期(在选择时)的格式相匹配。对于大部分数据库,此设置与 DateOutputFormatString 属性的设置相同。
*
要确定您的数据库所使用的日期格式,请按如下所述以从数据库中选择一个日期。
按数据库选择日期
DB2®
从运行 Campaign 服务器的机器连接到数据库。使用位于 Campaign\bin 目录中的 db2test 来进行连接,然后发出以下命令:
如果您的操作系统未提供 db2test 实用程序,请使用 cxntest 实用程序来测试与目标数据库的连接。
从运行 Campaign 服务器的机器连接到数据库。使用位于 Campaign\bin 目录中的 odbctest 来进行连接,然后发出以下命令:
												CREATE TABLE date_test (f1 DATE);
INSERT INTO date_test values (current_date);
SELECT f1 FROM date_test;
				SELECT current_date FROM	ANY_TABLE limit 1;
其中 ANY_TABLE 是任何现有表的名称
从运行 Campaign 服务器的机器登录到数据库。使用 SQL *Plus 进行连接,然后发出以下命令:
从运行 Campaign 侦听器的机器连接到数据库。使用位于 Campaign\bin 目录中的 odbctest 来进行连接,然后发出以下命令:
其他注意事项
请注意以下特定于数据库的指示信息。
Teradata
Teradata 允许您逐个列定义日期格式。除了 dateFormatdateOutputFormatString 之外,还必须设置 SuffixOnCreateDateField。要与我们的系统表设置一致,请使用:
*
SuffixOnCreateDateField = FORMAT 'YYYY-MM-DD'
*
DateFormat = DELIM_Y_M_D
*
SQL Server
如果未在 ODBC 数据源配置中选中输出货币、数字、日期和时间时使用区域设置选项,那么您无法重置日期格式。通常,不选中此设置会更加轻松,以使日期格式配置不会针对每种语言来更改。
缺省值
DELIM_Y_M_D
有效值
DATE 宏中指定的任何格式
DateOutputFormatString
描述
DateOutputFormatString 属性指定 Campaign 向数据库中写入任何日期(如营销活动开始或结束日期)时要使用的数据类型的格式。将 DateOutputFormatString 属性的值设置为数据源对 date 类型的列所期望的格式。 对于大部分数据库,此设置与 [data_source_name] > DateFormat 属性的设置相同。
可以将 DateOutputFormatString 属性设置为针对 DATE_FORMAT 宏中的 format_str 指定的任何格式。DATE_FORMAT 宏接受两种不同类型的格式。一种是标识(例如,DELIM_M_D_YDDMMMYYYY,与 DATE 宏接受的格式相同),而另一种是格式字符串。DateOutputFormatString 属性的值必须是格式字符串 - 不得是 DATE 宏标识中的一个。通常,请使用其中一种定界格式。
您可以通过创建一个表并以您选择的格式来插入一个日期,从而验证您是否选择了正确格式,如以下过程中所述。
验证 DateOutputFormatString
1.
请勿使用数据库随附的查询工具(如 SQL Server 的查询分析器)来验证日期是否正确发送到数据库。这些查询工具可能会将日期格式转换为并非 Campaign 实际发送到数据库的日期格式。
2.
CREATE TABLE date_test (F1 DATE) 
INSERT INTO date_test VALUES ('03/31/2004')
如果数据库允许 INSERT 命令成功完成,那么您已选择了正确的格式。
缺省值
%Y/%m/%d
DateTimeFormat
描述
[data_source_name] > DateTimeFormat 属性的值指定 Campaign 期望从数据库中接收日期时间/时间戳记数据的格式。此值必须与您的数据库用于显示日期时间/时间戳记数据(在选择时)的格式相匹配。对于大部分数据库,此设置与 DateTimeOutputFormatString 的设置相同。
通常,您应按照以下方式来设置 DateTimeFormat:在按照表“按数据库选择日期”中所述确定 DateFormat 值之后,在 DT_ 前面添加 DateFormat 值。
*
缺省值
DT_DELIM_Y_M_D
有效值
仅支持定界格式,如下所示:
*
*
*
*
*
*
*
DateTimeOutputFormatString
描述
DateTimeOutputFormatString 属性指定 Campaign 向数据库中写入任何日期时间(如营销活动开始或结束日期和时间)时要使用的 datetime 数据类型的格式。将 DateTimeOutputFormatString 属性的值设置为数据源对 datetime 类型的列所期望的格式。对于大部分数据库,此设置与 [data_source_name] > DateTimeFormat 属性的设置相同。
有关验证所选格式是否正确的方法,请参阅 DateOutputFormatString。
缺省值
%Y/%m/%d %H:%M:%S
DB2NotLoggedInitially
描述
DB2NotLoggedInitially 属性确定在 DB2® 中填充临时表时 Campaign 是否使用 not logged initially SQL 语法。设置为 TRUE 时,此属性将对插入到临时表这一操作禁用日志记录,这将提高性能并降低数据库资源消耗。
如果您的 DB2® 版本不支持 not logged initially 语法,请将此属性设置为 FALSE
缺省值
TRUE
有效值
TRUE | FALSE
DB2NotLoggedInitiallyUserTables
描述
DB2NotLoggedInitiallyUserTables 属性确定 Campaign 是否对插入到 DB2® 用户表这一操作使用 not logged initially SQL 语法。设置为 TRUE 时,此属性将对插入到用户表这一操作禁用日志记录,这将提高性能并降低数据库资源消耗。
*
设置为 TRUE 时,如果用户表事务由于任何原因而失败,那么表将损坏并且必须予以删除。所有先前包含在表中的数据都将丢失。
*
DB2NotLoggedInitiallyUserTables 属性不用于 Campaign 系统表。
缺省值
FALSE
有效值
TRUE | FALSE
DefaultScale
描述
Campaign 创建数据库字段以存储平面文件或派生字段中的数字值,且使用“快照”进程或“导出”进程时,会使用 DefaultScale 属性。
除非数据库字段忽略有关精度和小数位的信息,否则此属性不用于始发于数据库表的数字值。(精度指示该字段所允许的总位数。小数位指示小数点右边所允许的位数。例如,6.789 的精度为 4,小数位为 3。从数据库表获取的值包括有关精度和小数位的信息,创建字段时 Campaign 会使用这些信息。)
示例:平面文件不指示精度和比例,因此您可使用 DefaultScale 指定要为创建的字段定义的小数点右侧的位数。例如:
*
DefaultScale=0 将创建一个小数点右边没有一个位数的字段(即只能存储整数)。
*
DefaultScale=5 将创建一个小数点右边最多 5 个值的字段。
如果为 DefaultScale 设置的值超过字段的精度,那么将对这些字段使用 DefaultScale=0。例如,如果精度为 5,并且 DefaultScale=6,那么将使用值 0。
缺省值
0(零)
DefaultTextType
描述
ODBC 数据源需要 DefaultTextType 属性。此属性指示 Campaign 如何在源文本字段来自不同数据源类型的情况下在目标数据源中创建文本字段。例如,源文本字段可能来自平面文件或者不同类型的 DBMS。如果源文本字段来自相同类型的 DBMS,那么将忽略此属性,并且在目标数据源中使用来自源文本字段的数据类型创建文本字段。
缺省值
VARCHAR
有效值
VARCHAR | NVARCHAR
DeleteAsRecreate
描述
DeleteAsRecreate 属性指定在输出进程配置为 REPLACE TABLE 并且不支持 TRUNCATE 的情况下,Campaign 是删除并重新创建表,还是仅从表中删除。
值为 TRUE 时,Campaign 将删除表并重新创建。
值为 FALSE 时,Campaign 将从表中执行 DELETE FROM
缺省值
FALSE
有效值
TRUE | FALSE
DeleteAsTruncate
描述
DeleteAsTruncate 属性指定在输出进程配置为 REPLACE TABLE 时,Campaign 是使用 TRUNCATE TABLE 还是从表中删除。
值为 TRUE 时,Campaign 将从表中运行 TRUNCATE TABLE
值为 FALSE 时,Campaign 将从表中运行 DELETE FROM
缺省值取决于数据库类型。
缺省值
*
对于 Netezza®、Oracle 和 SQL Server 为 TRUE
*
有效值
TRUE | FALSE
DisallowTempTableDirectCreate
描述
DisallowTempTableDirectCreate 属性指定 Campaign 向临时表中添加数据的方式。
设置为 FALSE 时,Campaign 将使用某个命令来执行直接“创建并填充”SQL 语法;例如,CREATE TABLE <table_name> AS ...(对于 Oracle 和 Netezza®)和 SELECT <field_names> INTO <table_name> ...(对于 SQL Server)。
设置为 TRUE 时,Campaign 将创建临时表,然后使用单独命令直接在表之间填充此临时表。
缺省值
FALSE
有效值
TRUE | FALSE
DSN
描述
将此属性设置为数据源名称 (DSN)(即此 Campaign 数据源的 ODBC 配置中所分配的)。缺省情况下未定义此值。
使用 Campaign 数据源配置属性,您可以指定引用同一物理数据源的多个逻辑数据源。例如,您可以为同一数据源创建两组数据源属性,一个包含 AllowTempTables = TRUE,另一个包含 AllowTempTables = FALSE。其中每个数据源在 Campaign 中具有不同名称,但是如果它们引用同一个物理数据源,那么将具有相同 DSN 值。
缺省值
未定义任何缺省值。
DSNUsingOSAuthentication
描述
仅当 Campaign 数据源为 SQL Server 时,DSNUsingOSAuthentication 属性才适用。当 DSN 配置为使用 Windows 认证方式时,请将此值设置为 TRUE
缺省值
FALSE
有效值
TRUE | FALSE
EnableBaseDimSelfJoin
描述
EnableBaseDimSelfJoin 属性指定在基本表和维表映射到同一物理表并且维与基本表的标识字段上的基本表不相关的情况下,Campaign 数据库行为是否将执行自连接。
缺省情况下,此属性设置为 FALSE,并且当基本表和维表是同一数据库并且关系字段相同时(例如,AcctID 到 AcctID),Campaign 假定您不希望执行连接。
缺省值
FALSE
EnableSelectDistinct
描述
EnableSelectDistinct 属性指定 Campaign 的标识的内部列表是由 Campaign 服务器还是由数据库来进行重复数据删除。
值为 TRUE 时,数据库将执行重复数据删除,对数据库生成的 SQL 查询具有以下格式(如果适用):
SELECT DISTINCT key FROM table
值为 FALSE 时,Campaign 服务器将执行重复数据删除,并且针对数据库生成的 SQL 查询具有以下格式:
SELECT key FROM table
在以下情况下,请保留缺省值 FALSE
*
*
您希望 Campaign 应用程序服务器执行重复数据删除以降低数据库上的资源消耗/负载。
无论您为此属性指定的值如何,Campaign 都将自动确保根据需要对键进行重复数据删除。此属性仅用于控制进行重复数据删除的位置(在数据库上还是在 Campaign 服务器上)。
缺省值
TRUE
有效值
TRUE | FALSE
EnableSelectOrderBy
描述
EnableSelectOrderBy 属性指定 Campaign 的标识的内部列表是由 Campaign 服务器还是由数据库来进行排序。
值为 TRUE 时,数据库将执行排序,并且对数据库生成的 SQL 查询具有以下格式:
SELECT <key> FROM <table> ORDER BY <key>
值为 FALSE 时,Campaign 服务器将执行排序,并且针对数据库生成的 SQL 查询具有以下格式:
SELECT <key>FROM <table>
*
缺省值
TRUE
有效值
True | False
ExcludeFromTableDisplay
描述
ExcludeFromTableDisplay 参数允许您限制在 Campaign 中进行表映射期间显示的数据库表的数量。 此参数不会降低从数据库检索的表名称的数量。
不会显示与指定模式匹配的表名称。
例如,如果将此参数的值设置为 sys.*,那么将不会显示以 sys. 开头的名称。请注意,此参数的值区分大小写。
缺省值
UAC_*,当 ExtractTablePrefix 属性的值为缺省值时,此值将排除临时表和抽取表。
ExtractTablePostExecutionSQL
描述
使用 ExtractTablePostExecutionSQL 属性来指定在创建和填充抽取表之后要立即运行的一个或多个完整 SQL 语句。
以下描述了可用于 ExtractTablePostExecutionSQL 的标记。
缺省值
未定义
有效值
有效 SQL 语句
ExtractTablePrefix
描述
ExtractTablePrefix 属性指定在 Campaign 中所有抽取表名称前面自动添加的字符串。两个或更多数据源指向相同数据库时,此属性非常有用。有关详细信息,请参阅 TempTablePrefix 描述。
缺省值
UAC_EX
ForceNumeric
描述
ForceNumeric 属性指定 Campaign 是否作为数据类型 double 来检索数字值。值设置为 TRUE 时,Campaign 将作为数据类型 double 来检索所有数字值。
缺省值
FALSE
有效值
TRUE | FALSE
InactiveConnectionTimeout
描述
InactiveConnectionTimeout 属性指定不活动的 Campaign 数据库连接在关闭之前保持打开状态的秒数。将值设置为 0 将禁用超时,使连接保持打开状态。
缺省值
120
InsertLogSize
描述
InsertLogSize 属性指定在 Campaign 快照进程正在运行的情况下新条目进入日志文件的时机。每当快照进程写入的记录数量达到 InsertLogSize 属性中指定数量的倍数时,便写入日志条目。日志条目可帮助您确定某个正在运行的快照进程的最新进度。此值设置太低可能会创建大型日志文件。
缺省值
100000(一千条记录)
有效值
正整数
JndiName
描述
仅当配置 Campaign 系统表时,才会使用 JndiName 属性(不适用于其他数据源,如客户表)。将其值设置为应用程序服务器(WebSphere® 或 WebLogic)中定义的 Java 命名和目录接口 (JNDI) 数据源。
缺省值
campaignPartition1DS
LoaderCommand
描述
LoaderCommand 属性指定用于调用 Campaign 中的数据库装入实用程序的命令。 如果设置此参数,那么对于与“替换所有记录”设置一起使用的“快照”进程中所有输出文件,Campaign 会进入数据库装入器实用程序方式。此参数还在 Campaign 将标识列表上载到临时表时调用数据库装入器实用程序方式。
此属性的有效值是数据库装入实用程序可执行文件的任何完整路径名或用于启动数据库装入实用程序的脚本的任何完整路径名。使用脚本允许您在调用装入实用程序之前执行其他设置。
Contact OptimizationCampaign 使用相同的配置设置来实现数据库装入实用程序。如果将 Campaign 配置为与数据库装入实用程序一起工作,那么应该将 Contact Optimization 配置为使用相同命令。同样,如果将 Contact Optimization 配置为与数据库装入实用程序一起工作,那么应将 Campaign 配置为与数据库装入实用程序一起工作。每种情况采用 IBM® EMM 安装目录中不同的根目录。根目录为 /Campaign(对于 Campaign)或者 /ContactOptimization(对于 Contact Optimization),因此,可在装入器命令和模板文件中指定不同命令。
大部分数据库装入实用程序需要若干参数才能成功启动。 这些参数可包括指定要从数据库装入使用程序中装入的数据文件和控制文件以及要装入到数据库装入实用程序的数据库和表。Campaign 支持以下标记,在命令运行时,这些标记将替换为指定元素。请参阅数据库装入实用程序文档以了解调用数据库装入实用程序时应使用的正确语法。
缺省情况下未定义此参数。
以下描述了可用于 LoaderCommand 的标记。
可用于 LoaderCommand 的标记
此标记将替换为 Campaign 根据 LoaderControlFileTemplate 参数中指定的模板而生成的临时控制文件的完整路径和文件名。
此标记将替换为 Campaign 将数据装入到的数据源的名称。这与此数据源的类别名称中使用的数据源名称相同。
此标记将替换为在装入过程中由 Campaign 创建的临时数据文件的完整路径和文件名。此文件位于 Campaign 临时目录 UNICA_ACTMPDIR 中。
此标记将替换为 DSN 属性的值。如果未设置 DSN 属性,那么 <DSN> 标记将替换为此数据源的类别名称中使用的数据源名称(与用于替换 <DATABASE> 标记的值相同)。
此标记已过时,但仍支持此标记以兼容之前版本。请参阅 <TABLENAME>(自 4.6.3 起,已替换 <TABLE>)。
此标记将替换为 Campaign 将数据装入到的数据库表名称。这是您的快照进程中的目标表或者 Campaign 正在创建的临时表的名称。
缺省值
未定义任何缺省值。
有效值
数据库装入实用程序可执行文件的任何完整路径名或用于启动数据库装入实用程序的脚本的任何完整路径名
LoaderCommandForAppend
描述
LoaderCommandForAppend 参数指定为调用数据库装入实用程序(以在 Campaign 中的数据库表中追加记录)而发出的命令。 如果设置此参数,那么对于与“追加记录”设置一起使用的“快照”进程中所有输出文件,Campaign 会进入数据库装入器实用程序方式。
此参数指定为数据库装入实用程序可执行文件的完整路径名或用于启动数据库装入实用程序的脚本的完整路径名。使用脚本允许您在调用装入实用程序之前执行其他设置。
大部分数据库装入实用程序需要若干参数才能成功启动。 这些参数可包括指定要从数据库装入使用程序中装入的数据文件和控制文件以及要装入到数据库装入实用程序的数据库和表。当命令运行时,标记将替换为指定元素。
请参阅数据库装入实用程序文档以了解调用数据库装入实用程序时应使用的正确语法。
缺省情况下未定义此参数。
以下描述了可用于 LoaderCommandForAppend 的标记。
此标记将替换为 Campaign 根据 LoaderControlFileTemplate 参数中指定的模板而生成的临时控制文件的完整路径和文件名。
此标记将替换为 Campaign 将数据装入到的数据源的名称。这与此数据源的类别名称中使用的数据源名称相同。
此标记将替换为在装入过程中由 Campaign 创建的临时数据文件的完整路径和文件名。此文件位于 Campaign 临时目录 UNICA_ACTMPDIR 中。
此标记将替换为 DSN 属性的值。如果未设置 DSN 属性,那么 <DSN> 标记将替换为此数据源的类别名称中使用的数据源名称(与用于替换 <DATABASE> 标记的值相同)。
此标记已过时,但仍支持此标记以兼容之前版本。请参阅 <TABLENAME>(自 4.6.3 起,已替换 <TABLE>)。
此标记将替换为 Campaign 将数据装入到的数据库表名称。这是您的快照进程中的目标表或者 Campaign 正在创建的临时表的名称。
缺省值
未定义任何缺省值。
LoaderControlFileTemplate
描述
LoaderControlFileTemplate 属性指定 Campaign 中配置的控制文件模板的完整路径和文件名。 如果设置了此参数,Campaign 将根据您在此处指定的模板来动态构建临时控制文件。此临时控制文件的路径和名称可用于 <CONTROLFILE> 标记(此标记可用于 LoaderCommand 参数)。
在数据库装入器实用程序中使用 Campaign 之前,必须配置此参数所指定的控制文件模板。控制文件模板支持以下标记,当 Campaign 创建临时控制文件时,将动态替换这些标记。
有关您的控制文件所要求的正确语法,请参阅您的数据库装入器实用程序文档。
缺省情况下未定义此参数。
可用于 LoaderControlFileTemplate 的标记与针对 LoaderCommand 属性描述的标记相同,另外还有以下特殊标记,这些特殊标记对出站表中的每个字段重复一次。
此令牌替换为文字“CHAR( )”。此字段的长度是在 () 中指定。 如果您的数据库恰巧不理解字段类型 CHAR,那么您可以手动为字段类型类型相应文本,并使用 <FIELDLENGTH> 标记。例如,对于 SQLSVR 和 SQL2000,您将使用“SQLCHAR(<FIELDLENGTH>)
缺省值
未定义任何缺省值。
LoaderControlFileTemplateForAppend
描述
LoaderControlFileTemplateForAppend 属性指定 Campaign 中配置的控制文件模板的完整路径和文件名。 如果设置了此参数,Campaign 将根据此处指定的模板来动态构建临时控制文件。此临时控制文件的路径和名称可用于 <CONTROLFILE> 标记(此标记可用于 LoaderCommandForAppend 属性)。
在数据库装入器实用程序中使用 Campaign 之前,必须配置此参数所指定的控制文件模板。控制文件模板支持以下标记,当 Campaign 创建临时控制文件时,将动态替换这些标记。
有关您的控制文件所要求的正确语法,请参阅您的数据库装入器实用程序文档。可用于您的控制文件模板的标记与可用于 LoaderControlFileTemplate 属性的标记相同。
缺省情况下未定义此参数。
缺省值
未定义任何缺省值。
LoaderDelimiter
描述
LoaderDelimiter 属性指定临时数据文件是固定宽度还是定界平面文件,如果是定界,还将指定 Campaign 用作定界符的字符。
如果未定义值,那么 Campaign 将作为固定宽度平面文件来创建临时数据文件。
如果指定了值,那么在调用装入器以填充某个已知为空的表时,将使用此值。Campaign 将作为定界平面文件来创建临时数据文件,并使用此属性的值作为定界符。
缺省情况下未定义此属性。
缺省值
未定义任何缺省值。
有效值
可以括在双引号中的字符(如果需要)。
LoaderDelimiterAtEnd
描述
一些外部装入实用程序需要数据文件是定界的,每行以定界符结尾。为了适应这种需求,请将 LoaderDelimiterAtEnd 值设置为 TRUE,以便在调用装入器来填充已知为空的表时,Campaign 在每一行的结尾使用定界符。
FALSE
缺省值
FALSE
有效值
TRUE | FALSE
LoaderDelimiterAtEndForAppend
描述
一些外部装入实用程序需要数据文件是定界的,每行以定界符结尾。为了适应这种需求,请将 LoaderDelimiterAtEndForAppend 值设置为 TRUE,以便在调用装入器来填充并非已知为空的表时,Campaign 在每一行的结尾使用定界符。
缺省值
FALSE
有效值
TRUE | FALSE
LoaderDelimiterForAppend
描述
LoaderDelimiterForAppend 属性指定临时 Campaign 数据文件是固定宽度还是定界平面文件,如果是定界,还将指定用作定界符的字符或字符集。
如果未定义值,那么 Campaign 将作为固定宽度平面文件来创建临时数据文件。
如果指定了值,那么在调用装入器以填充某个并非已知为空的表时,将使用此值。Campaign 将作为定界平面文件来创建临时数据文件,并使用此属性的值作为定界符。
缺省情况下未定义此属性。
缺省值
未定义任何缺省值。
有效值
您可能括在双引号中的字符(如果需要)。
LoaderNULLValueInDelimitedData
配置类别
Campaign|partitions|partition[n]|dataSources|dataSourcename
描述
此属性支持针对数据库装入器(例如,Netezza)在定界数据中使用空值。 输入表示列的空值的字符串。
缺省值
空值
LoaderUseLocaleDP
描述
LoaderUseLocaleDP 属性指定,当 Campaign 将数字值写入到要由数据库装入实用程序装入的文件时,特定于语言环境的符号是否用于小数点。
将此值设置为 FALSE 可指定句点 (.) 将用作小数点。
此值设置为 TRUE 以指定将使用与语言环境相应的小数点符号。
缺省值
FALSE
有效值
TRUE | FALSE
MaxItemsInList
描述
允许您指定允许 Campaign 在 SQL 中的单个列表中包含的项(例如,WHERE 子句中 IN 运算符后面的值列表)的最大数量。
缺省值
1000(仅限 Oracle),对于所有其他数据库为 0(无限制)
有效值
整数
MaxQueryThreads
描述
MaxQueryThreads 属性指定允许对单个 Campaign 流程图中每个数据库源运行的并发查询的数量上限。
Campaign 使用独立线程运行数据库查询。由于 Campaign 进程并行运行,因此通常针对单个数据源同时运行多个查询。如果要并行运行的查询数量超过此属性指定的值,那么 Campaign 服务器会自动将同时查询数限制为该值。
无最大值限制。注意,如果 maxReuseThreads 属性设置为非零值,它应该大于或等于 MaxQueryThreads 的值。
缺省值
根据数据库而有所不同
MaxRowFetchRecords
描述
所选标识数量小于 MaxRowFetchRecords 属性指定的值时,Campaign 会在单独 SQL 查询中将标识传递到数据库,每次传递一个。此过程可能需要花费很长时间。如果所选标识数量大于此参数指定的值,那么 Campaign 将使用临时表(如果数据库源允许),或者从表中下拉所有值(不包括任何必要的值)。
由于性能方面的原因,最好是将此数字保持较小值。
缺省值
100
MaxTempTableJoinPctSelectAll
描述
发出查询时,Campaign 将在包含确切标识列表(由于查询而生成)的数据库上创建临时表。对数据库发出一个选择所有记录的附加查询时,MaxTempTableJoinPctSelectAll 属性指定是否对临时表执行连接。
如果临时表的相对大小(指定为百分比)大于 MaxTempTableJoinPctSelectAll 属性的值,那么不执行连接。将首先选择所有记录,然后废弃不需要的记录。
如果临时表的相对大小(百分比形式)小于或等于 MaxTempTableJoinPctSelectAll 的值,那么将首先对临时表执行连接,然后将生成的标识检索到服务器。
仅当 AllowTempTables 属性的值设置为 TRUE 时,此属性才适用。如果 useInDbOptimization 属性设置为 YES,那么将忽略此属性。
缺省值
90
有效值
0 到 100 之间的整数。值为 0 意味着从不使用临时表连接;值为 100 意味着将始终使用表连接,无论临时表的大小如何。
示例
假定 MaxTempTableJoinPctSelectAll 设置为 90。首先,您可能希望从数据库表(客户)中选择帐户余额 (Accnt_balance) 大于 $1000 的客户 (CustID)。
选择进程生成的对应 SQL 表达式可能如下所示:
SELECT CustID FROM Customer
WHERE Accnt_balance > 1000
选择进程可能从总大小为 1,000,000 的表中检索到 100,000 个标识,即 10%。如果允许临时表,那么 Campaign 会将所选标识 (TempID) 写入到数据库中的临时表 (Temp_table)。
然后,您可能希望对所选标识 (CustID) 以及实际余额 (Accnt_balance) 获取快照。 由于临时表 (Temp_table) 的相对大小小于 90% (MaxTempTableJoinPctSelectAll),因此将首先对临时表执行连接。快照进程生成的 SQL 表达式可能如下所示:
SELECT CustID, Accnt_balance FROM Customer, Temp_table WHERE CustID = TempID
如果选择进程检索了 90% 以上的 ,那么后续快照进程将检索所有记录,并且将其与第一组标识进行匹配,从而废弃不必要的标识。
快照进程生成的 SQL 表达式可能如下所示:
SELECT CustID, Accnt_balance FROM Customer
MaxTempTableJoinPctWithCondition
描述
发出查询时,Campaign 将在包含确切标识列表(由于查询而生成)的数据库上创建临时表。如果对数据库发出一个附加查询,此查询通过限制条件来选择记录,那么 MaxTempTableJoinPctWithCondition 属性指定是否应对临时表执行连接。
如果临时表的相对大小(指定为百分比)大于 MaxTempTableJoinPctWithCondition 的值,那么不执行连接。这避免了数据库中原本不需要的开销。在此情况下,将针对数据库发出查询,检索产生的标识列表,然后在将此列表与服务器存储器中的列表进行匹配时废弃不需要的记录。
如果临时表的相对大小(百分比形式)小于或等于 MaxTempTableJoinPctWithCondition 的值,那么将首先对临时表执行连接,然后将生成的标识检索到服务器。
仅当 AllowTempTables 属性的值设置为 TRUE 时,此属性才适用。
缺省值
20
有效值
0 到 100 之间的整数。值为 0 意味着从不使用临时表连接;值为 100 意味着将始终使用表连接,无论临时表的大小如何。
MinReqForLoaderCommand
描述
使用此属性来设置使用批量装入程序的阈值。当输入单元中唯一标识的数量超过此处定义的值时,Campaign 将调用分配给 LoaderCommand 参数的脚本。此属性的值不表示将写入的记录数量。
如果未配置此属性,Campaign 会假设该值为缺省值(零)。如果配置了此属性,但将值设置为负值或非整数值,那么 Campaign 会假设该值为零。
缺省值
0(零)
有效值
整数
MinReqForLoaderCommandForAppend
描述
使用此属性来设置使用批量装入程序的阈值。当输入单元中唯一标识的数量超过此处定义的值时,Campaign 将调用分配给 LoaderCommandForAppend 参数的脚本。此属性的值不表示将写入的记录数量。
如果未配置此属性,Campaign 会假设该值为缺省值(零)。如果配置了此属性,但将值设置为负值或非整数值,那么 Campaign 会假设该值为零。
缺省值
0(零)
有效值
正整数
NumberOfRetries
描述
NumberOfRetries 属性指定在失败时 Campaign 自动重试数据库操作的次数。在 Campaign 报告数据库错误或失败之前,将按照这一次数来自动向数据库重新提交查询。
缺省值
0(零)
ODBCTableTypes
描述
缺省情况下,此属性为空,这适用于所有当前受支持的数据源。
缺省值
未定义
有效值
(空)
ODBCUnicode
描述
ODBCUnicode 属性指定 Campaign ODBC 调用中使用的编码类型。此属性仅用于 ODBC 数据源,在用于 Oracle 或 DB2® 本机连接时,将忽略此属性。
*
如果此属性设置为 UTF-8UCS-2,那么数据源的 StringEncoding 值必须设置为 UTF-8WIDEUTF-8,否则将忽略 ODBCUnicode 属性的设置。
缺省值
disabled
有效值
此属性的可能值为:
*
Disabled - Campaign 使用 ANSI ODBC 调用。
*
UTF-8 - Campaign 使用 Unicode ODBC 调用并假定 SQLWCHAR 为单字节。这与 DataDirect ODBC 驱动程序兼容。
*
UCS-2 - Campaign 使用 Unicode ODBC 并假定 SQLWCHAR 为双字节。这与 Windows 和 unixODBC ODBC 驱动程序兼容。
ODBCv2
描述
使用 ODBCv2 属性指定 Campaign 应将哪种 ODBC API 规范用于数据源。
缺省值 FALSE 允许 Campaign 使用 v3 API 规范,而设置 TRUE 将导致 Campaign 使用 v2 API 规范。对于不支持 ODBC v3 API 规范的数据源,请将 ODBCv2 属性设置为 TRUE
ODBCv2 属性设置为 TRUE 时,Campaign 不支持 ODBC Unicode API,对于 ODBCUnicode 属性,disabled 以外的值均不会被识别。
缺省值
FALSE
有效值
TRUE | FALSE
OwnerForTableDisplay
描述
使用此属性,将 IBM Campaign 中表映射显示限制为指定模式中的表。例如,要指定模式“dbo”中的表,请设置 OwnerForTableDisplay=dbo。
缺省值
未定义任何缺省值。
PadTextWithSpaces
描述
设置为 TRUE 时,PadTextWithSpaces 属性将使 Campaign 使用空格来填充文本值,直至字符串与数据库字段具有相同宽度。
缺省值
FALSE
有效值
TRUE | FALSE
PostExtractTableCreateRunScript
描述
使用 PostExtractTableCreateRunScript 属性指定在创建并填充抽取表之后 Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostExtractTableCreateRunScript 的标记。
缺省值
未定义
有效值
shell 脚本或可执行文件的文件名
PostSegmentTableCreateRunScript
描述
指定在创建和填充了细分市场临时表之后 Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostSegmentTableCreateRunScript 的标记。
缺省值
未定义
有效值
脚本或可执行文件的文件名
PostSnapshotTableCreateRunScript
描述
使用 PostSnapshotTableCreateRunScript 属性指定在创建并填充快照表之后 Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostSnapshotTableCreateRunScript 的标记。
缺省值
未定义
有效值
shell 脚本或可执行文件的文件名
PostTempTableCreateRunScript
描述
使用 PostTempTableCreateRunScript 属性指定在用户表源或系统表数据库中创建并填充临时表之后 Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostTempTableCreateRunScript 的标记。
缺省值
未定义任何缺省值。
PostUserTableCreateRunScript
描述
指定在创建了用户表之后 Campaign 运行的脚本或可执行文件。
以下描述了可用于 PostUserTableCreateRunScript 的标记。
缺省值
未定义
有效值
脚本或可执行文件的文件名
PrefixOnSelectSQL
描述
使用 PrefixOnSelectSQL 属性指定在 Campaign 生成的所有 SELECT SQL 表达式前面自动添加的字符串。
此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
此属性将自动添加到 SELECT SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。
缺省情况下未定义此属性。
以下描述了可用于 PrefixOnSelectSQL 的标记。
缺省值
未定义任何缺省值。
QueryThreadSleep
描述
QueryThreadSleep 属性影响 Campaign 服务器进程 (UNICA_ACSVR) 的 CPU 利用率。值为 TRUE 时,Campaign 服务器进程用于检查查询是否完成的线程将在检查的间歇休眠。 值为 FALSE 时,Campaign 服务器进程将连续检查查询是否完成。
缺省值
TRUE
ReaderLogSize
描述
ReaderLogSize 参数定义在从数据库读取数据时 Campaign 在日志文件中生成新条目的时机。每当读取自数据库的记录数量达到此参数中定义的数字的倍数时,将在日志文件中写入一个日志条目。
此参数可帮助您确定某一进程在其运行方面的最新进度。此值设置太低可能会创建大型日志文件。
缺省值
1000000(一百万条记录)
有效值
整数
SegmentTempTablePrefix
描述
为此数据源中的“创建细分市场”进程所创建的细分市场表设置前缀。两个或更多数据源指向相同数据库时,此属性非常有用。有关详细信息,请参阅 TempTablePrefix 描述。
缺省值
UACS
ShareConnection
描述
ShareConnection 属性已不再使用,并且应保持设置为其缺省值 FALSE
缺省值
FALSE
有效值
FALSE
SQLOnConnect
描述
SQLOnConnect 属性定义在每个数据库连接之后 Campaign 立即运行的完整 SQL 语句。
此属性生成的 SQL 语句将自动传递到您的数据库,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SQLOnConnect 的标记。
缺省值
未定义任何缺省值。
StringEncoding
描述
StringEncoding 属性指定数据库的字符编码。当 Campaign 从数据库检索数据,数据将从指定编码转换为 Campaign 的内部编码 (UTF-8)。 Campaign 向数据库发送查询时,会将字符数据的编码从 Campaign 的内部编码 (UTF-8) 转换为 StringEncoding 属性中指定的编码。
此属性的值必须与数据库客户机上使用的编码相匹配。
尽管缺省情况下未定义此值,但是请不要将此值留为空白。
如果您使用 ASCII 数据,请此值设置为 UTF-8
如果数据库客户机编码为 UTF-8,那么此值的首选设置为 WIDEUTF-8。仅当数据库客户机已设置为 UTF-8时,WIDE-UTF-8 设置才会起作用。
如果您使用 partitions > partition[n] > dataSources > data_source_name > ODBCUnicode 属性,那么将 StringEncoding 属性设置为 UTF-8WIDEUTF-8。否则,将忽略 ODBCUnicode 属性值。
要获取受支持编码的列表,请参阅《Campaign 管理员指南》中的『Campaign 中的字符编码』。
*
缺省值
未定义任何缺省值。
特定于数据库的注意事项
本部分描述如何为 DB2®、SQL Server 或 Teradata 数据库设置正确的值。
DB2®
标识 DB2® 数据库代码页和代码集。对于本地化环境,DB2® 数据库必须具有以下配置:
*
*
Campaign 中将 StringEncoding 属性值设置为 DB2® 数据库代码集值。
DB2® 环境变量 DB2CODEPAGE 设置为 DB2® 数据库代码页值:
*
Windows 上:将以下行添加到 Campaign 侦听器启动脚本 (<CAMPAIGN_HOME>\bin\cmpServer.bat):
db2set DB2CODEPAGE=1208
*
UNIX 上:在启动 DB2® 之后,系统管理员必须从 DB2® 实例用户输入以下命令:
$ db2set DB2CODEPAGE=1208
然后运行此命令来启动 Campaign 侦听器:
./rc.unica_ac start
此设置将影响所有 DB2® 数据源并可能影响其他正运行的程序。
SQL Server
对于 SQL Server,请使用代码页来代替 iconv 编码。要通过 SQL Server 数据库来为 StringEncoding 属性确定正确值,请查找对应于服务器的操作系统的区域设置的代码页。
例如,要使用代码页 932(日语 Shift-JIS):
StringEncoding=CP932
Teradata
对于 Teradata,您必须覆盖某些缺省行为。Teradata 支持按列字符编码,而 Campaign 仅支持按数据源编码。由于 Teradata ODBC 驱动程序中的缺陷,UTF-8 无法与 Campaign 结合使用。Teradata 将为每个登录设置缺省字符编码。您可以覆盖此行为,方法是在 Windows 上的 ODBC 数据源配置中使用参数,或者在 UNIX 平台上的 odbc.ini 中使用参数,如下所示:
CharacterSet=UTF8
Teradata 表的缺省编码为 LATIN。 Teradata 具有很少内置编码,但是它支持用户定义的编码。
StringEncoding 属性的缺省值为 ASCII
*
对于很多涉及到 UTF-8 数据库的情况,您应使用 WIDEUTF-8 伪编码,如 WIDEUTF-8 一节中所述。
WIDEUTF-8
Campaign 通常负责在其内部编码 UTF-8 与数据库的编码之间进行代码转换。当数据库以 UTF-8 编码时,可以为 StringEncoding 指定值 UTF-8(SQL Server 除外),并且不需要代码转换。传统上,这些是 Campaign 访问数据库中的非英文数据的唯一可行模型。
Campaign V7.0 中,引入了一种称为 WIDEUTF-8 的新数据库编码,可作为 StringEncoding 属性的值。通过使用此编码,Campaign 仍使用 UTF-8 来与数据库客户机进行通信,但是允许客户机在 UTF-8 与实际数据库的编码之间执行代码转换任务。需要此增强版本的 UTF-8 来改变表列映射的宽度,以便将它们具有足够宽度来适应转换代码后的文本。
*
*
SuffixOnAllOtherSQL
描述
SuffixOnAllOtherSQL 属性指定要自动追加到 Campaign 生成的每个 SQL 表达式并且 SuffixOnInsert、SQLSuffixOnSelectSQL、SuffixOnTempTableCreation、 SuffixOnUserTableCreation SuffixOnUserBaseTableCreation 属性未包含的字符串。
此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
SuffixOnAllOtherSQL 用于以下表达式类型(如果是由 Campaign)生成:
TRUNCATE TABLE table
DROP TABLE table
DELETE FROM table [WHERE ...]
UPDATE table SET ...
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此参数,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SuffixOnAllOtherSQL 的标记。
缺省值
未定义任何缺省值。
SuffixOnCreateDateField
描述
SuffixOnCreateDateField 属性指定 Campaign 自动追加到 CREATE TABLE SQL 语句中的任何 DATE 字段的字符串。
例如,您可能按如下所示来设置此属性:
SuffixOnCreateDateField = FORMAT 'YYYY-MM-DD'
如果此属性未定义(缺省值),那么 CREATE TABLE 命令不变。
*
请参阅对 DateFormat 属性的描述中的表。
缺省值
未定义任何缺省值。
SuffixOnInsertSQL
描述
SuffixOnInsertSQL 属性指定将自动追加到 Campaign 生成的所有 INSERT SQL 表达式的字符串。 此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
SuffixOnInsertSQL 用于以下表达式类型(如果是由 Campaign)生成:
INSERT INTO table ...
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SuffixOnInsertSQL 的标记。
缺省值
未定义任何缺省值。
SuffixOnSelectSQL
描述
SuffixOnSelectSQL 属性指定将自动追加到 Campaign 生成的所有 SELECT SQL 表达式的字符串。 此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SuffixOnSelectSQL 的标记。
缺省值
未定义任何缺省值。
SuffixOnTempTableCreation
描述
使用 SuffixOnTempTableCreation 属性来指定在创建临时表时将自动追加到 Campaign 生成的 SQL 表达式的字符串。此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。要使用此属性,AllowTempTables 属性必须设置为 TRUE
您可能希望使用标记来替换此 SQL 语句中的表名称和列名称(<TABLENAME><KEYCOLUMNS>),因为这些标记是在营销活动执行期间动态生成的。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
*
以下描述了可用于 SuffixOnTempTableCreation 的标记。
缺省值
未定义任何缺省值。
SuffixOnSegmentTableCreation
描述
指定在创建细分市场临时表时将自动追加到 Campaign 生成的 SQL 表达式的字符串。
以下描述了可用于 SuffixOnSegmentTableCreation 的标记。
缺省值
未定义
有效值
有效的 SQL
SuffixOnSnapshotTableCreation
描述
使用 SuffixOnSnapshotTableCreation 属性来指定在创建快照表时将自动追加到 Campaign 生成的 SQL 表达式的字符串。
以下描述了可用于 SuffixOnSnapshotTableCreation 的标记。
缺省值
未定义
有效值
有效的 SQL
SuffixOnExtractTableCreation
描述
使用 SuffixOnExtractTableCreation 属性来指定在创建抽取表时将自动追加到 Campaign 生成的 SQL 表达式的字符串。
以下描述了可用于 SuffixOnExtractTableCreation 的标记。
缺省值
未定义
有效值
有效的 SQL
SuffixOnUserBaseTableCreation
描述
使用 SuffixOnUserBaseTableCreation 属性指定在用户创建基本表时(例如,在抽取进程中),将自动追加到 Campaign 生成的 SQL 表达式的字符串。 此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
您可能希望使用标记来替换此 SQL 语句中的表名称和列名称(<TABLENAME><KEYCOLUMNS>),因为这些标记是在营销活动执行期间动态生成的。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SuffixOnUserBaseTableCreation 的标记。
缺省值
未定义任何缺省值。
SuffixOnUserTableCreation
描述
使用 SuffixOnUserTableCreation 属性指定在用户创建常规表时(例如,在快照进程中),将自动追加到 Campaign 生成的 SQL 表达式的字符串。 此属性仅适用于 Campaign 生成的 SQL,并不适用于“选择”进程中使用的“原始 SQL”表达式中的 SQL。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 SuffixOnUserTableCreation 的标记。
缺省值
未定义任何缺省值。
SystemTableSchema
描述
指定用于 Campaign 系统表的模式。
缺省值为空白。此参数仅与 UA_SYSTEM_TABLES 数据源相关。
除非 UA_SYSTEM_TABLES 数据源包含多个模式(例如,在多个组所使用的 Oracle 数据库上),否则请将此值留为空白。(在此上下文中,“模式”指示 X.Y 格式的“限定”表名的初始部分(例如,dbo.UA_Folder)。在这一格式中,X 是模式,Y 是未限定表名称。 此语法的术语在 Campaign 支持的不同数据库系统之间各有不同。)
如果系统表数据库中存在多个模式,请将此值设置为创建 Campaign 系统表的模式的名称。
缺省值
未定义任何缺省值。
TempTablePostExecutionSQL
描述
使用 TempTablePostExecutionSQL 属性可指定在用户表源或在系统表数据库中创建临时表之后 Campaign 立即运行的完整 SQL 语句。AllowTempTables 属性必须设置为 TRUE 才能在数据源中启用临时表的创建。
您可能希望使用标记来替换此 SQL 语句中的表名称和列名称(<TABLENAME><KEYCOLUMNS>),因为这些标记是在营销活动执行期间动态生成的。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
TempTablePostExecutionSQL 属性将分号视为用于运行多个 SQL 语句的定界符。如果您的 SQL 语句包含分号,并且您希望其作为一个语句来运行,请使用反斜杠作为分号前面的转义字符。
*
以下描述了可用于 TempTablePostExecutionSQL 的标记。
缺省值
未定义任何缺省值。
TableListSQL
描述
使用 TableListSQL 属性来指定要使用的 SQL 查询以在可映射的表的列表中包含同义词。
缺省值为空白。如果您的数据源为 SQL Server 并且您希望能够在返回的表模式中映射同义词,那么此属性是必需的。如果您希望将特定 SQL 查询与其他数据源结合使用,以代替或补充使用标准方法(如 ODBC 调用或本机连接)检索的模式信息,那么此属性是可选的。
*
如果使用某个有效的 SQL 查询来设置此属性,那么 Campaign 将发出此 SQL 查询来检索要映射的表的列表。如果查询返回一列,那么会将此列视为名称的列;如果查询返回两列,那么假定第一列为所有者名称的列,并将第二列视为表名称的列。
如果 SQL 查询未以星号 (*) 开头,那么 Campaign 会将此列表与正常检索(例如,通过 ODBC 调用或本机连接)的表的列表进行合并。
如果 SQL 查询以星号 (*) 开头,那么 SQL 返回的列表将替换正常列表,而不是与其合并。
缺省值
有效值
有效 SQL 查询
示例
如果数据源是 SQL Server,在正常情况下,Campaign 使用的 ODBC API 调用将返回表和视图的列表,但不含同义词。要同时包含同义词的列表,请按照类似以下示例来设置 TableListSQL
select B.name AS oName, A.name AS tName 
from sys.synonyms A LEFT OUTER JOIN sys.schemas B
on A.schema_id = B.schema_id ORDER BY 1, 2
要在完全避免 ODBC API 的情况下检索表、视图和同义词的列表,请按照类似以下示例来设置 TableListSQL
*select B.name AS oName, A.name AS tName from
(select name, schema_id from sys.synonyms UNION
select name, schema_id from sys.tables UNION select name,
schema_id from sys.views) A LEFT OUTER JOIN sys.schemas B on
A.schema_id = B.schema_id ORDER BY 1, 2
如果数据源是 Oracle,您可以使用类似下列的查询来检索表、视图和同义词的列表以代替使用本机连接方法(类似 ALL_OBJECTS 视图)检索的数据:
*select OWNER, TABLE_NAME from (select OWNER, TABLE_NAME 
from ALL_TABLES UNION select OWNER, SYNONYM_NAME AS TABLE_NAME
FROM ALL_SYNONYMS UNION select OWNER,
VIEW_NAME AS TABLE_NAME from ALL_VIEWS) A ORDER BY 1, 2
UOSQLOnConnect
描述
SQLOnConnect 属性定义在每个数据库连接之后 Campaign 立即运行的完整 SQL 语句。UOSQLOnConnect 属性与此类似,但是仅适用于 Contact Optimization
此属性生成的 SQL 语句将自动传递到您的数据库,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
缺省情况下未定义此属性。
以下描述了可用于 UOSQLOnConnect 的标记。
缺省值
未定义任何缺省值。
UseSQLToRetrieveSchema
描述
使用 SQL 查询(而不是 ODBC 或本机 API 调用)来检索要用作此数据源的表模式的模式。
此属性的缺省值为 FALSE,这指示 Campaign 应使用其标准方法(例如,ODBC 或本机连接)来检索模式。此属性设置为 TRUE 会导致 Campaign 来准备一个类似于 select * from <table> 的 SQL 查询以检索表模式。
这可提供特定于每个数据源的优势。例如,某些数据源(Netezza® 或 SQL Server)不能通过缺省 ODBC 或本机连接来正确地报告 SQL 同义词(数据库对象的备用名称,使用 create synonym 语法来定义)。通过将此属性设置为 TRUE,将针对 Campaign 中的数据映射来检索 SQL 同义词。
以下列表描述了此设置对某些数据源的行为:
*
对于 Netezza®,必须将此属性设置为 TRUE 以便能够支持同义词。将此属性设置为 TRUE 可命令 Campaign 准备一个 SQL 查询以检索表模式。要在 Netezza® 数据源中支持同义词,不需要其他设置或值。
*
对于 SQL Server,要能够支持同义词,必须将此属性设置为 TRUE 并且在此数据源的 TableListSQL 属性中输入有效 SQL。请参阅 TableListSQL 属性的描述以获取更多详细信息。
*
对于 Oracle 数据源,将此属性设置为 TRUE 可命令 Campaign 准备一个 SQL 查询以检索表模式。结果集将 NUMBER 字段(未指定精度/小数位,这可能导致 Campaign 中出现问题)标识为 NUMBER(38),这可避免这些可能的问题。
*
对于其他数据源,您可以选择将此属性设置为 TRUE 以使用上述 SQL select 查询,或者在 TableListSQL 属性中指定一个要改为使用的有效 SQL,或者除此之外在缺省情况下使用的 ODBC API 或本机连接。请参阅 TableListSQL 属性的描述以获取更多详细信息。
缺省值
FALSE
有效值
TRUE | FALSE
示例
要使 Campaign 能够处理 Netezza® 或 SQL Server 同义词:
UseSQLToRetrieveSchema=TRUE
UserBaseTablePostExecutionSQL
配置类别
Campaign|partitions|partition[n]|dataSources|dataSourcename
描述
流程框配置为写入新映射表 > 基本记录表 > 在所选数据库中创建新表时,会调用此属性。仅当创建表(创建和映射过程期间)时,会调用此属性。流程框运行时期间不会调用此属性。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。您可以对字符串添加引号,但这不是必需的。
此属性将分号视为定界符以运行多个 SQL 语句。如果您的 SQL 语句包含分号,并且您希望其作为一个语句来运行,请使用反斜杠作为分号前面的转义字符。
*
您可以在此 SQL 语句中使用令牌替代 <TABLENAME>,因为营销活动运行时,会动态生成名称。有关可用令牌,请参阅 UserTablePostExecutionSQL
UserTablePostExecutionSQL
描述
使用此属性,指定在用户数据源或系统表数据库中创建用户表后 IBM Campaign 立即运行的完整 SQL 语句。流程框写入以下其中一个表时,会调用此属性:
*
新映射表 > 常规表 > 在所选数据源中创建新表:创建/映射过程期间会调用此属性;而快照运行时期间不会调用此属性。
*
新映射表 > 维表 > 在所选数据库中创建新表:创建/映射过程期间会调用此属性;而快照运行时期间不会调用此属性。
*
数据库表:流程框运行时期间会调用此属性。
您可能希望使用标记来替换此 SQL 语句中的表名称和列名称(<TABLENAME><KEYCOLUMNS>),因为这些标记是在营销活动执行期间动态生成的。
此属性将自动添加到 SQL 表达式,而不检查其语法。如果使用此属性,请确保其是合法表达式。该字符串可括在引号中,但这不是必要的。
此属性将分号视为定界符以运行多个 SQL 语句。如果您的 SQL 语句包含分号,并且您希望其作为一个语句来运行,请使用反斜杠作为分号前面的转义字符。
*
以下描述了可用于 UserTablePostExecutionSQL 的标记。
缺省值
未定义任何缺省值。
UseTempTablePool
描述
UseTempTablePool 设置为 FALSE 时,临时表将被删除,并在每次运行流程图时重新创建。当该属性设置为 TRUE 时,将不从数据库中删除临时表。将从 Campaign 维护的表池中截断临时表并加以复用。 临时表池在多次重新运行流程图的环境中最高效,例如,设计阶段和测试阶段。
缺省值
FALSE
有效值
TRUE | FALSE
SegmentTablePostExecutionSQL
描述
使用 SegmentTablePostExecutionSQL 属性指定在创建并填充细分市场临时表之后 Campaign 运行的完整 SQL 语句。
以下描述了可用于 SegmentTablePostExecutionSQL 的标记。
缺省值
未定义
有效值
有效 SQL 语句
SnapshotTablePostExecutionSQL
描述
使用 SnapshotTablePostExecutionSQL 属性指定在创建并填充快照表之后要立即运行的一个或多个完整 SQL 语句。仅当“快照”流程框写出到抽取表时,才会调用此属性。
以下描述了可用于 SnapshotTablePostExecutionSQL 的标记。
缺省值
未定义
有效值
有效 SQL 语句
TempTablePrefix
描述
此属性指定自动作为前缀追加到 Campaign 创建的所有临时表名称的字符串。使用此属性以帮助识别和管理临时表。您还可以使用此属性以在特定位置中创建临时表。
例如,如果用户标记对应于某一模式,那么您可以设置
TempTablePrefix="<USER>"
并且所有临时表都将在此模式中创建,无论什么用户连接到数据源。
如果两个或更多数据源指向相同数据库,那么在流程图运行期间会发生错误,导致搜索结果不正确,这是因为不同流程框和流程图使用了相同临时表。针对“抽取”进程表和“战略性细分市场”表,也可能会发生此情况。 要避免此情况,请使用 TempTablePrefix(或者,针对“抽取”表为 ExtractTablePrefix),为各个数据源定义不同模式。此方法确保名称的初始部分不同,这样表名将始终不同。
例如,为每个数据源指定唯一 TempTablePrefix(例如,UAC_DS1 和 UAC_DS2),以区分每个数据源的临时表。如果正共享数据源模式,那么相同概念都适用于这些数据源。例如,以下前缀允许临时表对于将临时表写入相同数据库的两个数据源都唯一:
DS1 TempTablePreFix:schemaA.UAC_DS1
DS2 TempTablePreFix:schemaA.UAC_DS2
下表描述了可用于 TempTablePrefix 的令牌。
*
*
缺省值
UAC
TempTablePreTruncateExecutionSQL
描述
*
使用 TempTablePreTruncateExecutionSQL 属性指定一个要在截断临时表之前运行的 SQL 查询。 您指定的查询可以用于取消 TempTablePostExecutionSQL 属性中指定的 SQL 语句的效果。
例如,通过 TempTablePostExecutionSQL 属性,您可以指定以下 SQL 语句以创建索引:
CREATE INDEX <TABLENAME>Idx_1 (<KEYCOLUMNS>) ON <TABLENAME>
然后,在 TempTablePreTruncateExecutionSQL 属性中指定以下查询以删除索引:
DROP INDEX <TABLENAME>Idx_1 ON <TABLENAME>
缺省值
未定义
有效值
有效 SQL 查询
TempTablePreTruncateRunScript
描述
*
使用 TempTablePreTruncateRunScript 属性指定一个要在截断临时表之前运行的脚本或可执行文件。 您指定的脚本可以用于取消 PostTempTableCreateRunScript 属性中指定的 SQL 语句的效果。
例如,通过 PostTempTableCreateRunScript 属性,您可以指定一个包含以下 SQL 语句的脚本以创建索引:
CREATE INDEX <TABLENAME>Idx_1 (<KEYCOLUMNS>) ON <TABLENAME>
然后,在 TempTablePreTruncateRunScript 属性中指定另一个包含以下语句的脚本以删除索引:
DROP INDEX <TABLENAME>Idx_1 ON <TABLENAME>
缺省值
未定义
有效值
shell 脚本或可执行文件的文件名
TeradataDeleteBeforeDrop
描述
TeradataDeleteBeforeDrop 参数仅适用于 Teradata 数据源。它指定在删除表之前是否删除记录。
将此值设置为 TRUE 可在删除表之前从表中删除所有记录。
*
如果 Campaign 由于任何原因而无法删除记录,那么它将不会删除表。
将此值设置为 FALSE 可在不首先删除所有记录的情况下删除表。
缺省值
TRUE
TruncateSQL
描述
TruncateSQL 属性可用于 DB2® 数据源,并且允许您指定用于表截断的备用 SQL。仅当 DeleteAsTruncate 设置为 TRUE 时,此属性才适用。DeleteAsTruncate 设置为 TRUE 时,此属性的任何定制 SQL 都将用于截断表。 如果未设置此属性,那么 Campaign 将使用 TRUNCATE TABLE <TABLENAME> 语法。
缺省情况下未定义此参数。
以下描述了可用于 TruncateSQL 的标记。
可用于 TruncateSQL 的标记
此标记将替换为 Campaign 所截断的数据库表名称。
缺省值
未定义任何缺省值。
类型
描述
partitions > partition[n] > dataSources > [data_source_name] > type 属性指定此数据源的数据库类型。
缺省值
缺省值取决于用于创建数据源配置的数据库模板。
有效值
系统表的有效值为:
*
*
*
*
*
*
客户表的有效值还包括:
*
*
UseExceptForMerge
描述
Campaign 在合并进程或细分进程中执行排除时,缺省情况下将使用“NOT EXISTS”语法,如:
SELECT IncludeTable.ID FROM IncludeTable WHERE NOT EXISTS 
(SELECT * FROM ExcludeTable WHERE IncludeTable.ID = ExcludeTable.ID)
如果 UseExceptForMerge 设置为 TRUE 并且我们无法使用“NOT IN”(因为 UseNotInForMerge 已禁用,或者因为受众级别包含多个字段并且数据源不是 Oracle),那么语法更改为如下所示:
Oracle
SELECT IncludeTable.ID FROM IncludeTable 
MINUS (SELECT ExcludeTable.ID FROM ExcludeTable)
其他
SELECT IncludeTable.ID FROM IncludeTable 
EXCEPT (SELECT ExcludeTable.ID FROM ExcludeTable)
缺省值
FALSE
有效值
TRUE | FALSE
UseMergeForTrack
描述
实现 SQL MERGE 语法以提高跟踪进程的性能。对于 DB2®、Oracle、SQL Server 2008 和 Teradata 12,UseMergeForTrack 属性可以设置为 TRUE。 它还可以与支持 SQL MERGE 语句的其他数据库结合使用。
缺省值
TRUE(DB2 和 Oracle)| FALSE(所有其他数据库)
有效值
TRUE | FALSE
UseNonANSIJoin
描述
UseNonANSIJoin 属性指定此数据源是否使用非 ANSI 连接语法。如果数据源类型设置为 Oracle7 或 Oracle8,并且 UseNonANSIJoin 的值设置为 TRUE,那么数据源使用适合于 Oracle 的非 ANSI 连接语法。
缺省值
FALSE
有效值
TRUE | FALSE
UseNotInForMerge
描述
Campaign 在合并进程或细分进程中执行排除时,缺省情况下将使用“NOT EXISTS”语法,如:
SELECT IncludeTable.ID FROM IncludeTable WHERE NOT EXISTS (SELECT * 
FROM ExcludeTable WHERE IncludeTable.ID = ExcludeTable.ID)
如果启用了 UseNotInForMerge(值设置为 YES),且 (1) 受众级别包含单个标识字段,或 (2) 数据源为 Oracle,那么语法将变更,如下所示:
SELECT IncludeTable.ID FROM IncludeTable WHERE IncludeTable.ID NOT IN 
(SELECT ExcludeTable.ID FROM ExcludeTable)
缺省值
NO
有效值
YES | NO
UseSQLToProfile
描述
UseSQLToProfile 属性使您可以配置 Campaign 以将 SQL 查询 GROUP BY 提交给数据库,从而计算概要文件(使用“SELECT field, count(*) FROM table GROUP BY field”),而不必访存记录。
*
FALSE(缺省值)将导致 Campaign 对字段进行概要分析(通过检索表中所有记录的字段值)以及跟踪每个非重复值的计数。
*
TRUE 将导致 Campaign 通过发出类似以下的查询来对字段进行概要分析:
SELECT field, COUNT(*) FROM table GROUP BY field
这将加重数据库的负担。
缺省值
FALSE
有效值
TRUE | FALSE