SSIS Выполнить задачу SQL, выбрасывая ORA-01008: ошибка не всех переменных - PullRequest
1 голос
/ 24 марта 2010

У меня есть задача «Выполнение SQL» (SQL 2008), где я использую две переменные SSIS для взаимодействия с базой данных Oracle:

DECLARE ParamTest number; TempOutputRun varchar(255);
ParamTest := ?;
TempOutputRun := ?;

BEGIN
IF ParamTest = 0 THEN

   SELECT CAST(OUTPUT_RUN_ID AS VARCHAR(15)) AS OUTPUT_RUN_ID FROM GL_EXTRACT_STATUS WHERE STATUS='NEW' ORDER BY OUTPUT_RUN_ID ASC;

ELSE

   SELECT TempOutputRun AS OUTPUT_RUN_ID FROM DUAL; 

END IF
;
END;

Я получаю ошибку ORA-01008 при выполнении, и я не знаю, почему. Обе переменные имеют значения и имеют правильные типы данных с именами параметров при отображении 0 и 1 соответственно. ELSE часть этого утверждения должна быть отключена текущими условиями, в которых я тестирую.

У кого-нибудь есть идеи? Я в замешательстве (и совершенно разочарован, если честно).

Спасибо!

Valkyrie

Ответы [ 2 ]

0 голосов
/ 31 августа 2016

Вы должны использовать следующий синтаксис

BEGIN
DECLARE
.....
BEGIN

.....

END;
END;
0 голосов
/ 24 марта 2010

Не зная много о SSIS, мне кажется, вам нужно выбрать ... в вашем коде:

SELECT CAST(OUTPUT_RUN_ID AS VARCHAR(15)) AS OUTPUT_RUN_ID
  INTO some_var
  FROM ...
 WHERE ...

и

SELECT TempOutputRun AS output_run_id
  INTO another_var
  FROM dual;

Я не совсем понимаю, почему ora-01008. Выполнение select из dual в блоке PL / SQL, как написано, дает мне ora-06550.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...