Как я могу получить количество вставленных строк? - PullRequest
0 голосов
/ 24 апреля 2019

Я работаю с файлами CSV, чтобы загрузить базу данных Teradata с файлами .tpt в Unix. Есть ли способ получить количество строк, вставленных в мои таблицы? Как и с любым помощником, типичное сообщение X Rows Inserted. То, что я хочу, это получить этот X. Спасибо. Вот код одного из моих .tpt файлов:

DEFINE JOB X_1
DESCRIPTION 'LOADING OF TABLE TABLE_1'
(
    DEFINE SCHEMA X_1
    (
        _FIELD_1            VARCHAR(8)
        ,_FIELD_2   VARCHAR(20)
        ,_FIELD_3       VARCHAR(20)
    );

    DEFINE OPERATOR DDL_OPERATOR
    TYPE DDL_OPERATOR
    ATTRIBUTES
    (
        VARCHAR PrivateLogName      = 'ddl_log'
        ,VARCHAR TdpId              = @jobvar_TDP
        ,VARCHAR UserName           = @jobvar_username
        ,VARCHAR UserPassword       = @jobvar_password
        ,VARCHAR QueryBandSessInfo  = @jobvar_QBSessInfo
        ,VARCHAR ErrorList          = '3807'
    );

    DEFINE OPERATOR FILE_READER
    TYPE DATACONNECTOR PRODUCER
    SCHEMA X_1
    ATTRIBUTES
    (
        VARCHAR PrivateLogName      = 'dataconnector_log'
        ,VARCHAR DirectoryPath      = @jobvar_datafiles_path
        ,VARCHAR FileName           = @jobvar_file_load
        ,VARCHAR Format             = 'Delimeted'
        ,VARCHAR TextDelimeter      = '|'
        ,INTEGER SkipRows           = 1
        ,VARCHAR OpenMode           = 'Read'
    );

    DEFINE OPERATOR LOAD_OPERATOR
    Type LOAD
    SCHEMA *
    ATTRIBUTES
    (
        VARCHAR PrivateLogName      = 'load_op_log'
        ,VARCHAR TdpId              = @jobvar_TDP
        ,VARCHAR UserName           = @jobvar_username
        ,VARCHAR UserPassword       = @jobvar_password
        ,INTEGER MaxSessions        = @jobvar_maxsessions
        ,INTEGER ErrorLimit         = 1
        ,VARCHAR Targettable        = @jobvar_tgt_dbname || '.TABLE_1'
        ,VARCHAR LogTable           = @jobvar_tgt_dbname || '.LG_TABLE_1'
        ,VARCHAR ErrorTable1        = @jobvar_tgt_dbname || '.ET_TABLE_1'
        ,VARCHAR ErrorTable2        = @jobvar_tgt_dbname || '.UV_TABLE_1'
    );

    STEP Setup_Tables
    (
        APPLY
            ('DROP TABLE    ' || @jobvar_tgt_dbname || '.ET_TABLE_1;'),
            ('DROP TABLE    ' || @jobvar_tgt_dbname || '.LG_TABLE_1;'),
            ('DROP TABLE    ' || @jobvar_tgt_dbname || '.UV_TABLE_1;'),
            ('DROP TABLE    ' || @jobvar_tgt_dbname || '.TABLE_1;'),
            ('CREATE MULTISET TABLE ' || @jobvar_tgt_dbname || '.TABLE_1
            (
                FIELD_1 VARCHAR(8) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
                FIELD_2 VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL,
                FIELD_3 VARCHAR(20) CHARACTER SET LATIN NOT CASESPECIFIC NOT NULL
            )PRIMARY INDEX(FIELD_1, FIELD_2, FIELD_3);'
            )
        TO OPERATOR (DDL_OPERATOR);
    );
    STEP Load_TABLE_1_Table
    (
        APPLY
            ('INSERT INTO ' || @jobvar_tgt_dbname || '.TABLE_1
            (
                FIELD_1
                ,FIELD_2
                ,FIELD_3
            )
            VALUES
            (
                _FIELD_1
                ,_FIELD_2
                ,_FIELD_3
            )
            ;')

    )
)

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете извлечь информацию из файла журнала TPT для задания, используя -f TWB_EVENTS для tlogview (для grep Insert Count для LoadRowsInserted).Ознакомьтесь с главой Оперативные метаданные в Руководстве пользователя TPT .

. В зависимости от выпуска Teradata и настройки QueryLog сведения о задании можно найти в представлении dbc.QryLogUtilityV.тоже.

...