sqlplus и Ruby - PullRequest
       42

sqlplus и Ruby

1 голос
/ 28 апреля 2010

Кто-нибудь знает, как использовать sqlplus в ruby? Мне нужно сделать что-то вроде этого: система ("имя пользователя sqlplus / pwd @ database filename.sql"

Thx / Никлас

1 Ответ

3 голосов
/ 28 апреля 2010

Чтобы программа sqlplus считывала входные данные из файла, необходимо добавить к имени файла префикс с символом @. Таким образом, будет работать следующее:

system("sqlplus", "username/pwd@database", "@filename.sql")

system может быть вызван либо с одним аргументом (ваша полная команда), либо с несколькими аргументами (с выделением аргументов вашей команды, как в примере выше). Документация для ядра # exec описывает разницу (system ведет себя так же):

Если exec дан единственный аргумент, этот аргумент принимается за строку, которая подлежит расширению оболочки до выполняется. Если несколько аргументов даны, второй и последующий аргументы передаются как параметры Команда без расширения оболочки. Если первый аргумент является двухэлементным массив, первый элемент команда должна быть выполнена, а вторая аргумент используется в качестве значения argv[0], которые могут отображаться в списках процессов.

Примечание: Если вы хотите, чтобы sqlplus завершал работу и возвращался в вашу программу ruby ​​после запуска SQL, убедитесь, что в конце файла SQL включен оператор quit.

...