2010-04-28 4 views
1

Кто-нибудь знает, как использовать sqlplus в рубине? мне нужно сделать что-то вроде этого: систем («SQLPLUS имени пользователя/пароля @ баз данных filename.sql»sqlplus и Ruby

Thx /Никлас

ответ

3

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

system("sqlplus", "username/[email protected]", "@filename.sql") 

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

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

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

Смежные вопросы