在SQL中,使用动态SQL是很常见的。有些复杂的计算,或是存储过程,代码很长,中间可能有多次执行SQL语句。而调试拼串的SQL语句却是件痛苦的事,很难看出来运行的语句是什么。所以我会经常使用print这个命令把运行前的语句打印到屏幕上,然后复制出来到另一个窗口进行调试、修改,这样就比较方便了。但是这个print命令有一些限制,在单字节符集下,最大只能打印打印8000个字符的长度,而在双字节字符集是4000个。
以下存储过程可以打印完整的信息,不受长度的限制。代码如下:
IF OBJECT_I
eval()
在print干事情之前,先看看这个东东。不是没有用,因为说不定某些时候要用到。
复制代码 代码如下:
>>> help(eval) #这个是一招鲜,凡是不理解怎么用,就用这个看文档
Help on built-in function eval in module __builtin__:
eval(…)
eval(source[, globals[, locals]]) -> value
Evaluate the source in
比如有下面一段代码:
for i in range(10):
print ("%s" % (f_list[i].name))
该代码段的执行,会生成如下的10行“name”属性的字符串
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
如果我们将上述代码段修改如下:
for i in range(10):
print ("\"%s\"," % (f_list[i].name)),
代码的执行结果就变成下面的样子:
"f1", "f2", "f3", "f4", "f5