2015-10-30 5 views
1

Привет я пытаюсь установить PAGESIZE с DBI и скрипт не какие-либо рекомендации, как я могу hndle это с DBI:Как я могу справиться с DBI эту команду «установить PAGESIZE 50»

$dbh=DBI->connect("dbi:Oracle:", "", "", { ora_session_mode => 
ORA_SYSDBA , RaiseError => 1, PrintError => 1 }); 
$dbh->do(qq{ " SET PAGESIZE 50" }); 

Там есть ошибка:

DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: error possibly near <> indicator at char 1 in ' <>" SET PAGESIZE 50" ') [for Statement " " SET PAGESIZE 50" "] at run.pl line 9. DBD::Oracle::db do failed: ORA-00900: invalid SQL statement (DBD ERROR: error possibly near <> indicator at char 1 in ' <>" SET PAGESIZE 50" ') [for Statement " " SET PAGESIZE 50" "] at run.pl line 9.

Любая идея?

ответ

1

Вы цитируете вещи дважды в этом заявлении об аварии.

Так оракул видит эту команду присылают к нему: " SET PAGESIZE 50"

qq{} по существу альтернативный способ сделать двойные кавычки в Perl, так что вам не придется бежать двойные кавычки внутри. Так просто удалить двойные кавычки внутри, и он будет счастлив (или использовать двойные кавычки вместо QQ, но, так как вы иногда хотите двойные кавычки в SQL, используя скобки безопаснее)

$dbh->do(qq{SET PAGESIZE 50}); 
+0

Это не решает проблема –

3

Это не настоящая команда SQL, это команда конфигурации для SQLPLUS-клиента Oracle, которая не отправляется на сервер. Вы не используете SQLPLUS, и нет смысла вызывать эту команду с помощью DBI.