Oracle SQL Developer: вставка в значения, выбранные из другого файла sql

спросил

Изменено 2 года, 6 месяцев назад

Просмотрено 1к раз

Можно ли вставить значения в таблицу Oracle SQL из SQL Developer в результате внешнего скрипта

 ВСТАВКА
В ТАБЛИЦУ_А
  (
    ИДЕНТИФИКАТОР,
    ВЕРСИЯ
  ) ЗНАЧЕНИЯ (@select.sql)
 

Оператор в файле select.sql имеет вид

 SELECT ID, VERSION from TABLE_X;
 
  • sql
  • оракул
  • оракул-sqldeveloper
  • sql-вставка

4

Это не будет работать в SQL Developer 20 с использованием «Запустить как сценарий» (F5) (или в командном окне PL/SQL Developer, если на то пошло). Если он должен работать с SQL Developer, вам не повезло.

Он будет работать в SQL*Plus и SQLcl, если вы очистите синтаксис и поместите вызов в отдельную строку.

test_insert.sql

 вставить в table_a
( идентификатор
, версия)
@@select.sql
/
 

select.sql

 выберите rownum, 1
из xmltable('от 1 до 10')
 

(обратите внимание, что вам нужно решить, какой сценарий содержит завершающий ; или / .)

 SQL * Plus: выпуск 19.0.0.0.0 - производство в среду, 9 сентября, 11:27:40 2020 г.
Версия 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. Все права защищены.
Время последнего успешного входа в систему: Среда, 09 сентября 2020 г., 11:26:30 +01:00
Подключен к:
Oracle Database 19c Enterprise Edition, выпуск 19.0.0.0.0 — производственная версия
Версия 19.3.0.0.0
SQL>
@test_insert Создано 10 рядов. SQL> SQL> л 1 вставить в table_a 2 (идентификатор 3, версия) 4 выберите номер строки, 1 5* из xmltable('от 1 до 10')

1

Как вы выразились, я не думаю, что это возможно.

Вот что может сработать, если вы приложите к этому некоторые усилия:

  • если файл select.sql расположен на сервере базы данных, в каталоге, который является источником
    для объекта каталога Oracle, и
  • , если пользователь, который должен запускать этот код, имеет привилегию на чтение в этом каталоге, тогда
  • напишите сценарий PL/SQL, который бы
    • использовать UTL_FILE для чтения select.sql , составить оператор (ваш пример показывает только одну строку; я думаю, там могут быть сложные операторы) и поместить его в локальную переменную
    • в качестве альтернативы, вы даже можете использовать файл select.sql в качестве внешней таблицы только с одним столбцом
    • составить другое — вставить — утверждение (обратите внимание, что ваше
      неправильное
      ; там не должно быть значений ключевого слова)
    • выполнить его с помощью выполнить немедленно (так что да, это динамический SQL)

Хотел бы я это сделать? Я так не думаю, но вы могли бы, теперь, когда вы знаете как .

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

Зарегистрируйтесь с помощью Google

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

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

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

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

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

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

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

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

Как вставить данные с помощью Oracle SQL Developer

Команда INSERT DML вводит новые строки данных в таблицу SQL. INSERT находится в домене Create аббревиатуры CRUD. При использовании Oracle SQL Developer IDE вместо написания INSERT INTO , в интерфейсе IDE есть визуальные элементы, которые помогают упростить операцию INSERT . Продолжайте читать, чтобы узнать, как это сделать на простом примере…

Информационный бюллетень для разработчиков PHP и MySQL

Получите копию моей электронной книги «10 советов по MySQL для всех» , абсолютно бесплатно при подписке на Информационный бюллетень OpenLampTech .

Выберите таблицу для вставки данных в

В левой панели SQL Developer (не показана) дважды щелкните таблицу, в которую вы хотите ВСТАВИТЬ данные. Появится новая панель мониторинга , содержащая несколько разных вкладок.

Ниже показана панель мониторинга и описание таблицы STAGE_WALKING_STATS: :

Описание таблицы

Вкладка Constraints содержит информацию о любых ограничениях таблицы. В этом примере таблица STAGE_WALKING_STATS имеет ограничение PRIMARY KEY в столбце DAY_WALKED :

Вкладка ограничений таблицы SQL Developer.
Вставка одной строки с помощью значка «Добавить данные»

Чтобы ВСТАВИТЬ строку данных, щелкните значок

«Добавить данные» , который отображается в виде зеленого символа плюса в верхней части документа:

Значок «Добавить данные».

Заполните значения необходимых полей в строке данных , предоставленной для каждой строки, которую вы хотите ВСТАВИТЬ . В приведенном ниже примере я ввожу все значения столбцов для одной строки данных:

Вставка строки данных с помощью вкладки данных.

Для завершения INSERT зафиксируйте все вновь добавленные строки. Просто щелкните значок Подтвердить (отмечен красной стрелкой на снимке экрана ниже), который отображается в виде зеленой галочки на хорошо известном символе контейнера базы данных:

Зафиксировать новые вставки с помощью кнопки со значком фиксации.

Если INSERT выполнен успешно и ошибок не возникает, SQL Developer отображает сообщение, указывающее на успешную фиксацию:

Сообщение об успешной фиксации.

Подумайте о том, чтобы сделать небольшое пожертвование от моего имени, поскольку я продолжаю публиковать ценный контент в своем блоге. Спасибо!


Вставка нескольких строк с помощью значка добавления данных

Абсолютно возможно ВСТАВИТЬ несколько строк за раз с помощью Oracle SQL Developer. Когда вы заполните и закончите строку данных, нажмите TAB на клавиатуре. SQL Developer автоматически создает новую пустую строку. Заполните эти строки — и любые последующие строки — значениями данных столбца и продолжите фиксацию новых строк:

Вставка нескольких строк с помощью вкладки данных Oracle SQL Developer

То же, что и в примере с одной строкой, зафиксируйте данные без каких-либо проблем, и вы получите сообщение успешно зафиксировано . ( Примечание : эти 2 шага не показаны для этого конкретного примера. См. ту же информацию в предыдущем разделе INSERT с одной строкой выше, поскольку они идентичны. )

Представление данных в таблице из успешных операций INSERT.

Ознакомьтесь со статьями премиум-класса, подробными руководствами, обучающими видеороликами и многим другим, присоединившись к «Уровень обучения MySQL» членство. У вас есть доступ к эксклюзивному контенту, неопубликованному где-либо еще с этим членством. Поскольку новый контент регулярно добавляется, продолжайте изучать MySQL на любом уровне.

Изучайте MySQL!


Ограничения таблицы применяются при вставке данных

Любые ограничения таблицы соблюдаются даже при использовании визуальных элементов Oracle SQL Developer для INSERT данных. Так как ряд с DAY_WALKED Значение даты столбца ’29-APR-21′ уже существует в таблице STAGE_WALKING_STATS , попытка INSERT дополнительной строки с этим значением завершается неудачей из-за ограничения PRIMARY KEY в столбце DAY_WALKED6:

Попытка вставить дополнительную запись

Вместо сообщения об успешном завершении Oracle SQL Developer возвращает уникальную ошибку нарушения ограничения, как показано на этом снимке экрана:

Сообщение об ошибке вставки.
Дополнительные сообщения, которые могут вас заинтересовать
  • Символьная функция SUBSTR() — пример Oracle SQL
  • Как найти первый и последний день месяца с помощью функций даты Oracle SQL
  • Импорт файла CSV с помощью Oracle SQL Developer

И так же просто

ВСТАВИТЬ строк данных в таблицу с помощью Oracle SQL Developer.

Если вы видите какие-либо ошибки в коде или у вас есть вопросы или комментарии, не стесняйтесь добавлять их в раздел комментариев к сообщению. Спасибо за чтение.

Нравится то, что вы прочитали? Видите что-нибудь неправильное? Пожалуйста, прокомментируйте ниже и спасибо за чтение!

Спасибо, что нашли время прочитать этот пост. Я искренне надеюсь, что вы открыли для себя что-то интересное и поучительное. Пожалуйста, поделитесь своими выводами здесь с кем-то из ваших знакомых, кто также получит от этого такую ​​же пользу.

Посетите страницу Портфолио-Проекты, чтобы увидеть записи в блоге/технические статьи, которые я написал для клиентов.

Чтобы получать уведомления по электронной почте (Никогда не спам) из этого блога («Проза цифровой совы») о последних сообщениях в блоге по мере их публикации, подпишитесь (по собственному желанию), нажав кнопку «Нажмите, чтобы подписаться!» боковая панель на главной странице! (Не стесняйтесь в любое время просматривать страницу политики конфиденциальности Digital Owl Prose по любым вопросам, которые могут у вас возникнуть: обновления по электронной почте, подписка, отказ, контактные формы и т. д.)

Будьте уверены и посетите страницу «Лучшее из» для коллекции моих лучших сообщений в блоге.


Джош Отвелл страстно желает учиться и расти как разработчик SQL и блогер. Другие любимые занятия заставят его уткнуться носом в хорошую книгу, статью или командную строку Linux. Среди них он разделяет любовь к настольным ролевым играм, чтению фантастических романов и проведению времени с женой и двумя дочерьми.

Отказ от ответственности: примеры, представленные в этом посте, являются гипотетическими идеями о том, как достичь подобных результатов. Это не самое лучшее решение(я). Большинство, если не все, приведенные примеры выполняются в рабочей среде персональной разработки/обучения и не должны считаться готовыми к производству. Ваши конкретные цели и потребности могут отличаться. Используйте те методы, которые лучше всего подходят для ваших нужд и целей. Мнения мои собственные.

Другие способы, которыми я могу помочь

  • Вы думаете о создании блога? Я использую WordPress для блога разработчиков Digital Owl’s Prose . Давайте оба сэкономим на тарифах, предлагаемых . 💸
  • Привлеките к своему бренду, продукту или услуге то внимание, которого они заслуживают благодаря доступному размещению объявлений в информационном бюллетене
    OpenLampTech
    .
  • Нужен хостинг для вашего следующего веб-приложения или сайта WordPress? Я настоятельно рекомендую Hostinger и использую их для размещения своего нишевого сайта о ловле окуня.