perl $dbh->prepare()参数的有关问题
perl $dbh-prepare()参数的问题请问一下,我通过下面的语句获取oracle表的字段值,为什么运行的时候提示SQL
perl $dbh->prepare()参数的问题
请问一下,我通过下面的语句获取oracle表的字段值,为什么运行的时候提示SQL语句不对?我直接在数据库下使用desc tablename都是正常的。
Perl code$dbh->prepare("desc tablename");
另外有个问题也请教一下,如果我将tablenamee替换为?,然后执行的话,也总是报错,请问是怎么回事?
Perl code$dbh->prepare("select * from ?");foreach $table (@tablenames){ $sth->execute($table); ...}
多谢!
[解决办法]desc可能不是一个sql,只是一个数据库客户端的命令。
一般table名不支持?,其他语言的sql库大概也是这样。只有常量(字符串,整数什么的)才支持。
[解决办法]1、我认为desc不是dml语言,应该属于ddl语言。你试一试使用do或者execute方法来执行。实在不行,你就封装成一个函数,得到返回值。
2、字段名、表名不能使用问号,问号表示变量绑定,所以,只有使用变量的地方才能使用问号。
[解决办法]另外,还有一个办法知道一个表中的所有字段:
使用select * from tabel where 1=2;然后通过hash将字段取出来。