4
我有一個關於perl的DBI的bind_param問題。下面的SQL工作:DBI:bind_param蒙上字符串NTEXT - >爲nvarchar(max)和NTEXT是不相容的
my $sth = $dbh->prepare("SELECT id FROM table WHERE id = 'string'");
$sth->execute();
雖然以下不會:
my $sth = $dbh->prepare("SELECT id FROM table WHERE id = ?");
$sth->execute('string');
錯誤最後查詢導致爲[ODBC SQL Server Driver][SQL Server]The data types nvarchar(max) and ntext are incompatible in the equal to operator. (SQL-42000)
。
好像bind_param
被execute
調用,將'string'轉換爲ntext。我該如何解決這個問題?
假設你正在使用DBD :: ODBC(它看起來像),那麼的SQLBindParameter被稱爲與C型SQL_C_CHAR和的參數類型什麼驅動程序說參數在SQLDescribeParam中。如果你有一個最新的DBI和DBD :: ODBC,你可以設置DBI_TRACE = DBD = x.log並運行你的代碼,你會看到它在x.log中得到了什麼。 – bohica