Почему этап хранимой процедуры в DataStage не работает должным образом? - PullRequest
0 голосов
/ 05 мая 2020

Мне нужно использовать этап хранимой процедуры.

В настоящее время я делаю просто пример того, как правильно его использовать.

CREATE OR REPLACE PROCEDURE "STG"."TRUNC_TEST"
AS
BEGIN
    execute immediate 'truncate table TESTSP';
END;

Это мой пример простой хранимой процедуры .

Мой рабочий дизайн, вероятно, выглядел так

Oracle Connector 1=>Transformer=>Oracle Connector 2=>Stored Procedure Stage

Oracle Коннектор 1 сделать Выбрать, Oracle Коннектор 2 сделать Вставить в TESTSP

Мои настройки в Стадия хранимой процедуры

Общее: я уже поместил все учетные данные, с ISO транзакции как Нет

Синтаксис

Procedure Name :  TRUNC_TEST
Procedure Type : Transform (i've also tried to change it to Target)
Database Procedure Type : Stored Procedure
Generate procedure call (checked)

Параметры

Empty

Коды ошибок

Empty

Карта NLS

Project Default UTF-8

Дополнительно

Execution mode :Default(Sequential)
Combinability : Default
Configuration file : default

На вкладках ввода

Общие

Execute Procedure for each row (checked)
Transaction size : 0

Разбиение на разделы

Collector type Auto

Столбцы

Just brought all the columns from Oracle connector 2

Расширенный

Default

Задание показывает зеленую линию и успешно, но SP не работает. Таблицу TESTSP следовало усечь, но когда я делаю select *, данные все еще там.

Может быть, моя хранимая процедура неверна, поскольку я все еще учусь, как это сделать? Или, может быть, что-то не так с моими «Настройками» на этапе хранимой процедуры?

1 Ответ

0 голосов
/ 05 мая 2020

Каждый раз, когда вы выполняете свою работу, вы просто создаете или заменяете определение SP. Вам нужно будет вызвать SP, чтобы выполнить его.

Это причина, по которой вы можете выполнить его снаружи. Я предлагаю вам создать общий c SP в вашей базе данных, который будет принимать имя таблицы в качестве параметра.

После его создания используйте стадию SP для вызова SP со столбцом, который вы хотите усечь. Вы также можете использовать опцию после SQL в соединителе oracle, чтобы избежать дополнительной ступени SP.

...