Создание идентификатора объекта БД (quote_identifier)
Назначение
Метод quote_identifier возвращает идентификатор объекта БД ЛИНТЕР для последующего его использования в качестве элемента генерируемого клиентским приложением текста SQL-запроса.
Пакет
Package Linter::db
Прототип
$sql = $dbh->quote_identifier($name); $sql = $dbh->quote_identifier($catalog, $schema, $table, \%attr );
| Параметр | Описание | |
|---|---|---|
$name | Строковый Perl-литерал | |
$catalog | Параметр не поддерживается | |
$schema | Идентификатор схемы | |
$table | Идентификатор таблицы | |
\%attr | Параметр не поддерживается |
Возвращаемые значения
| Переменная | Описание | |
|---|---|---|
$sql | Идентификатор объекта БД, экранированный в соответствии с языком SQL СУБД ЛИНТЕР | |
$DBI::errstr | Диагностическое сообщение (в случае ошибки) |
Пример
my $dbh = $drh->connect("DEMO", "SYSTEM", "MANAGER8")
or die "Could not connect to database: " . DBI->errstr;
my $quoted_table = $dbh->quote_identifier("MAIN TABLE");
my $quoted_value = $dbh->quote("20''");
my $crt_sql = sprintf("create or replace table %s(inches varchar(16));", $quoted_table);
my $ins_sql = sprintf("insert into %s values (%s);", $quoted_table, $quoted_value);
my $sel_sql = sprintf("select * from %s;", $quoted_table);
my $del_sql = sprintf("drop table %s;", $quoted_table);
$dbh->do($crt_sql);
$dbh->do($ins_sql);
my $sth = $dbh->prepare($sel_sql);
$sth->execute();
my $data = $sth->fetchrow_arrayref();
print($data->[0]);
$dbh->do($del_sql);
$sth->finish();
$dbh->disconnect();