为了转储和重载某些数据,我在批处理模式下使用带有select查询(-e'SELECT ...')的mysql客户端(更具体地说,是非常静默模式,' - s')将中间结果引导到标准输出。然后,使用LOAD DATA INFILE处理结果。
SELECT INTO OUTFILE不是一个选项,因为没有stdout重定向(如果任何人有任何技巧来执行此操作而不使用与查询结果大小成比例的内存,则非常欢迎它们。)
现在,'-ss -e'的问题是NULL被输出为'NULL'。
现在,假设数据集没有任何值'NULL'(字符串),我可以做某种替换[用awk]。 或者,没有这个假设,我可以使用一个非常不可能的字符串的IFNULL(),我将再次替换[与awk]。
我想知道的是:有没有办法直接从SQL中进行'干净'转义? 显然我不能使用IFNULL在输出中得到'\ N',因为斜杠是转义的。
答案 0 :(得分:0)
您可以使用NVL函数将SQL中的某些内容从NULL转换为其他内容。 http://www.techonthenet.com/oracle/functions/nvl.php