оператор выбора внутри оператора вставки - PullRequest
0 голосов
/ 04 августа 2011

Я попробовал следующий SQL-запрос

INSERT INTO test.ACT_QUERY values(2139,2,'SELECT ''D'',ORDER_ID from dual');

Когда Java-программа запускает этот оператор select из таблицы test.ACT_QUERY и помещает его в выходной файл, он выдает "D", 123. Я просто хочу D, 123.Не уверен, почему цитаты выходят.Что мне нужно заменить в операторе выбора, чтобы получить вывод в виде D, 123

1 Ответ

1 голос
/ 04 августа 2011

Трудно представить вашу проблему.Конечно, нет ничего плохого в принципе в том, что вы делаете, и это работает в PL / SQL.

Вот ваши тестовые данные, слегка настроенные для запуска в моей БД:

SQL> INSERT INTO ACT_QUERY values(2139,2,'SELECT ''D'', DUMMY from dual');

1 row created.

SQL> select * from act_query
  2  /

        ID       BLAH
---------- ----------
QRY_TXT
--------------------------------------------------------------------------------
      2139          2
SELECT 'D', DUMMY from dual


SQL>

Давайте бросим!

SQL> begin
  2      for r in (select * from
  3
  4  .
SQL> declare
  2      v1 char(1);
  3      v2 char(1);
  4  begin
  5      for r in (select * from act_query)
  6      loop
  7          execute immediate r.qry_txt into v1, v2;
  8          dbms_output.put_line(r.qry_txt);
  9          dbms_output.put_line('v1='||v1||'::v2='||v2);
 10      end loop;
 11  end;
 12  /
SELECT 'D'as D, DUMMY from dual
v1=D::v2=X

PL/SQL procedure successfully completed.

SQL>

Итак, вам нужно объяснить ситуацию более подробно, используя cut'n'paste фактического результата.

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