Sql pl select into: PL/SQL SELECT INTO Statement By Practice Examples

sql — SELECT INTO с использованием Oracle

спросил

Изменено
12 месяцев назад

Просмотрено
439 тысяч раз

Я пытаюсь выполнить SELECT INTO с помощью Oracle. Мой запрос:

 SELECT * INTO new_table FROM old_table;
 

Но я получаю следующую ошибку:

 Ошибка SQL: ORA-00905: отсутствует ключевое слово
00905. 00000 - "отсутствует ключевое слово"
 

Есть идеи, что не так?


Стандартное поведение вышеизложенного должно быть таким, как я изначально думал:
Однако Oracle реализовал это совершенно по-другому на своем диалекте SQL.
Документы Oracle при вставке… Выберите

  • sql
  • oracle
  • ora-00905

1

Если NEW_TABLE уже существует, то . ..

 вставить в новую_таблицу
выберите * из old_table
/
 

Если вы хотите создать NEW_TABLE на основе записей в OLD_TABLE…

 создайте таблицу new_table как
выберите * из old_table
/
 

Если целью является создание новой, но пустой таблицы, используйте предложение WHERE с условием, которое никогда не может быть истинным:

 создать таблицу new_table как
выберите * из old_table
где 1 = 2
/
 

Помните, что CREATE TABLE … AS SELECT создает только таблицу с той же проекцией, что и исходная таблица. В новой таблице нет ограничений, триггеров или индексов, которые могли бы быть в исходной таблице. Их по-прежнему необходимо добавлять вручную (если они требуются).

1

выбор в используется в pl/sql для установки переменной в значения поля. Вместо этого используйте

 создать таблицу new_table как select * from old_table
 

5

Использование:

 создать таблицу new_table_name
как
выберите имя_столбца,[больше столбцов] из Existed_table;
 

Пример:

 создать отдел таблицы
как
выберите empno, переименуйте от emp;
 

Если таблица уже существует:

 вставить в новое_имя_таблицы выбрать список_столбцов из существующей_таблицы;
 

Попробуйте использовать приведенный ниже оператор вместо использования select into в оракуле:

select * from(select * from table1) table2 ;

1

Зарегистрируйтесь или войдите

Зарегистрироваться через Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

plsql — выбор Oracle PL/SQL в переменные

спросил

Изменено
9 лет, 3 месяца назад

Просмотрено
24 тысячи раз

Я пытаюсь выполнить следующий запрос в SQL Developer, но получаю сообщение об ошибке. Я пытаюсь объявить две локальные переменные (var_num1 и payDate), а затем установить переменные. Кто-нибудь знает, что я могу делать неправильно? Я знаю, что Oracle SQL немного отличается от SQL Server.

 ЗАЯВИТЬ
  номер var_num1;
  Дата выплаты;
 НАЧИНАТЬ
  var_num1 := 100;
  payDate := '1.10.2013'
  НАЧИНАТЬ
    SELECT * FROM Paycode WHERE PaycodeID = var_num1 and PaycodeDate = payDate;
  Конец;
КОНЕЦ;
 

 Отчет об ошибке:
ORA-06550: строка 6, столбец 2:
PLS-00428: в этом операторе SELECT ожидается предложение INTO.
06550. 00000 - "строка %s, столбец %s:\n%s"
*Причина: обычно ошибка компиляции PL/SQL.
*Действие:
 
  • оракул
  • plsql
  • синтаксическая ошибка

1

Вы не можете использовать SELECT без предложения INTO в PL/SQL. Вывод SELECT должен где-то храниться. Например. таблица или переменная или, возможно, запись. См. пример ниже, как сохранить результат оператора SELECT в запись.