Как запустить bash скрипт из pl sql
Перейти к содержимому

Как запустить bash скрипт из pl sql

  • автор:

sqlcmd — запуск файлов скриптов Transact-SQL

Для запуска файла скрипта Transact-SQL используйте sqlcmd . Файл скрипта Transact-SQL является текстовым файлом, содержащим сочетание инструкций Transact-SQL, команд sqlcmd и переменных скрипта.

Создание файла скрипта

Чтобы создать файл скрипта Transact-SQL с помощью Блокнота, выполните следующие действия.

  1. Нажмите кнопку Пуск, выберите Все программы, Стандартные и Блокнот.
  2. Скопируйте и вставьте следующий код языка Transact-SQL в приложение «Блокнот»:

USE AdventureWorks2022; GO SELECT p.FirstName + ' ' + p.LastName AS 'Employee Name', a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode FROM Person.Person AS p INNER JOIN HumanResources.Employee AS e ON p.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.BusinessEntityAddress bea ON bea.BusinessEntityID = e.BusinessEntityID INNER JOIN Person.Address AS a ON a.AddressID = bea.AddressID; GO 

Выполнение файла скрипта

  1. Откройте окно командной строки.
  2. В окне командной строки введите sqlcmd -S myServer\instanceName -i C:\myScript.sql
  3. Нажмите клавишу ВВОД.

В окне командной строки будет выведен список имен и адресов сотрудников Adventure Works.

Сохранение результата в текстовом файле

  1. Откройте окно командной строки.
  2. В окне командной строки введите sqlcmd -S myServer\instanceName -i C:\myScript.sql -o C:\EmpAdds.txt
  3. Нажмите клавишу ВВОД.

Результат не будет выведен в окне командной строки. Он будет записан в файл EmpAdds.txt. Можно проверить полученные результаты, открыв файл EmpAdds.txt.

## Дальнейшие действия

  • Запуск программы sqlcmd
  • Служебная программа Sqlcmd

Запуск программы в bash и продолжение скрипта

Скрипт запуска программу и зависает — т.е. перестает выполняться дальше. Как можно запустить программу и продолжить выполнение скрипта?

Отслеживать
задан 21 мар 2017 в 13:59
737 1 1 золотой знак 7 7 серебряных знаков 21 21 бронзовый знак

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

exec "/c/program.exe" & echo "ok" 

Отслеживать
ответ дан 21 мар 2017 в 14:08
737 1 1 золотой знак 7 7 серебряных знаков 21 21 бронзовый знак

такой вариант запустит program.exe и тут-же выдаст в консоль «ok». А если написать так: (exec «/c/program.exe» && echo «ok») & , то «ok» будет в консольке уже после выполнения program.exe (если тот вернят код ошибки == 0)

31 мар 2017 в 12:34
Тоже полезно. Спасибо.
31 мар 2017 в 17:20

вот примерно где и что можно воткнуть:

echo 'before start' ( exec "/c/program.exe" && echo "finished Success" || echo "finished Failure" echo "after finish any case" ) & echo 'after start' 

Отслеживать
ответ дан 31 мар 2017 в 12:40
448 2 2 серебряных знака 10 10 бронзовых знаков
В чём смысл exec здесь?
31 мар 2017 в 12:58
про exec обращайтесь к автору вопрося, я без понятия что это за Виндовая экибана 😉
31 мар 2017 в 13:07

не стоит из вопроса код копировать, если вы не понимаете что он делает. Код в вопросе может вообще не работать. От ответа бо́льшего ожидается. Ваш ответ не только автор вопроса может прочитать (в этом соль Stack Overflow: один человек может поделиться крупицей знания со многими). Избегайте cargo-cult programming

Как запустить Bash скрипт в Linux

img

Как системный администратор, вполне вероятно, что вы написали несколько сценариев Bash для автоматизации вашей работы. Например, вы можете запускать сценарии Bash для резервного копирования вашей работы или для регистрации некоторых событий, происходящих на вашем сервере.

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

Как запустить Bash скрипт в Linux

В этой статье мы расскажем о всех способах запуска скрипта Bash в Linux.

Подготовка

Прежде чем вы сможете запустить ваш скрипт, вам нужно, чтобы ваш скрипт был исполняемым. Чтобы сделать исполняемый скрипт в Linux, используйте команду chmod и присвойте файлу права execute . Вы можете использовать двоичную или символическую запись, чтобы сделать ее исполняемой.

$ chmod u+x script $ chmod 744 script

Если вы не являетесь владельцем файла, вам необходимо убедиться, что вы принадлежите к правильной группе или что права доступа предоставлены «другой» группе в вашей системе.

В некоторых дистрибутивах ваш файл будет выделен другим цветом, когда он исполняемый.

script

Теперь, когда ваш файл исполняемый, давайте посмотрим, как можно легко запустить скрипт Bash.

Запустить Bash скрипт из пути к скрипту

Чтобы запустить Bash скрипт в Linux, просто укажите полный путь к скрипту и укажите аргументы, которые могут потребоваться для запуска Bash скрипта.

$ /path/to/script .

В качестве примера, скажем, у вас есть Bash-скрипт, расположенный в вашем домашнем каталоге.

Чтобы выполнить этот скрипт, вы можете указать полный путь к скрипту, который вы хотите запустить.

# Абсолютный путь $ /home/user/script # Абсолютный путь с аргументами $ /home/user/script "john" "jack" "jim"

Кроме того, вы можете указать относительный путь к скрипту Bash, который вы хотите запустить.

# Относительный путь $ ./script # Относительный путь с аргументами $ ./script "john" "jack" "jim"

Таким образом вы узнали, как легко запустить Bash-скрипт в своей системе.

Запустить Bash скрипт, используя bash

Чтобы запустить скрипт Bash в вашей системе, вы должны использовать команду bash и указать имя скрипта, который вы хотите выполнить, с необязательными аргументами.

$ bash

Кроме того, вы можете использовать sh , если в вашем дистрибутиве установлена утилита sh .

В качестве примера, скажем, вы хотите запустить скрипт Bash с именем script . Чтобы выполнить его с помощью утилиты bash , вы должны выполнить следующую команду

$ bash script This is the output from your script!

Выполнить скрипт Bash, используя sh, zsh, dash

В зависимости от вашего дистрибутива, в вашей системе могут быть установлены другие утилиты оболочки.

Bash — интерпретатор оболочки, установленный по умолчанию, но вы можете захотеть выполнить ваш скрипт с использованием других интерпретаторов. Чтобы проверить, установлен ли интерпретатор оболочки в вашей системе, используйте команду which и укажите нужный интерпретатор.

$ which sh /usr/bin/sh $ which dash /usr/bin/dash

Когда вы определили интерпретатор оболочки, который хотите использовать, просто вызовите его, чтобы легко запустить скрипт.

Запуск скрипта Bash из любого места

В некоторых случаях вы можете запускать скрипты Bash, где бы вы ни находились в вашей системе.

Чтобы запустить скрипт Bash из любой точки вашей системы, вам нужно добавить свой скрипт в переменную среды PATH .

$ export PATH=":$PATH"

Благодаря тому, что путь к скрипту добавлен в PATH , вы можете вызывать его там, где хотите в своей системе.

$ script This is the output from script!

Кроме того, вы можете изменить переменную среды PATH в вашем файле .bashrc и использовать команду source для обновления вашей текущей среды Bash.

$ sudo nano ~/.bashrc export PATH=":$PATH"

Выйдите из файла и используйте команду source для файла bashrc для внесения изменений.

$ source ~/.bashrc $ echo $PATH /home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Отлично! Теперь ваш скрипт может быть запущен из любой точки вашей системы.

Запуск Bash скриптов из графического интерфейса

Последний способ выполнения Bash скриптов — это использование графического интерфейса, в данном случае интерфейса GNOME.

GNOME

Чтобы запустить ваши скрипты с использованием GNOME, вы должны установить в проводнике Ask what to do для исполняемых файлов.

Ask what to do

Закройте это окно и дважды щелкните файл скрипта, который вы хотите выполнить.

При двойном щелчке вам предлагаются различные варианты: вы можете выбрать запуск скрипта (в терминале или нет) или просто отобразить содержимое файла.

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

Варианты

Успех! Ваш скрипт был успешно выполнен

Заключение

Из этого руководства вы узнали, как легко запускать Bash скрипты в своей системе, указав путь к скрипту или интерпретаторы, доступные на вашем хосте. Вы узнали, что можете сделать это еще проще, добавив путь к скрипту в переменную среды PATH или используя существующие функции в пользовательском интерфейсе GNOME.

How do you execute SQL from within a bash script?

I have some SQL scripts that I’m trying to automate. In the past I have used SQL*Plus, and called the sqlplus binary manually, from a bash script. However, I’m trying to figure out if there’s a way to connect to the DB, and call the script from inside of the bash script. so that I can insert date and make the queries run relative to a certain number of days in the past.

330k 84 84 gold badges 532 532 silver badges 506 506 bronze badges
asked Sep 23, 2009 at 18:33
303 1 1 gold badge 2 2 silver badges 4 4 bronze badges

7 Answers 7

I’m slightly confused. You should be able to call sqlplus from within the bash script. This may be what you were doing with your first statement

Try Executing the following within your bash script:

#!/bin/bash echo Start Executing SQL commands sqlplus / @file-with-sql-1.sql sqlplus / @file-with-sql-2.sql 

If you want to be able to pass data into your scripts you can do it via SQLPlus by passing arguments into the script:

Contents of file-with-sql-1.sql

 select * from users where username='&1'; 

Then change the bash script to call sqlplus passing in the value

#!/bin/bash MY_USER=bob sqlplus / @file-with-sql-1.sql $MY_USER 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *