PL/SQL. Можно ли использовать SELECT INTO из таблицы dual?

#plsql

Вопрос:

Можно ли использовать SELECT INTO из двойной таблицы, как это?

 SELECT * INTO myTable FROM ('val1' COLUMN1, 'val2' COLUMN2 FROM dual) dualTable  

Я бы использовал это, потому что мне нужно вставить значения и вернуть их в том же операторе.

Комментарии:

1. Это возможно; просто добавьте SELECT, здесь: ... from (select 'val1 column1, ... . С другой стороны, это зависит от того, какой у меня рабочий стол. Кроме того, я не понимаю, что вы имели в виду, говоря «нужно вставить значения» (вставить куда ?) «и вернуть их» (вернуться куда ?) «в том же заявлении». Возможно, вам лучше описать проблему , которую вы пытаетесь решить, вместо того, чтобы предлагать ответ, который, по — видимому, не сработал так, как вам хотелось бы.

Ответ №1:

На самом деле в этом нет ничего особенного, кроме простого создания двух переменных.

Ниже приведен код

 SELECT   'val1' COLUMN1, 'val2' COLUMN2  INTO  variable1, variable2 FROM   DUAL  

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

Комментарии:

1. «Имейте в виду, что с INTO вы не можете обрабатывать несколько строк. Только один.» gt;gt;gt;gt;gt;gt; На самом деле нет. Это означает скалярные переменные, но что мешает вам вставить их В коллекцию?

2. Исправлен ответ. Конечно, вы можете вставить в коллекцию, но, видя, что они используют dual, очень маловероятно, что они захотят получить больше 1 строки в первую очередь.