SQL...如何将表查询的结果自动保存到*.txt文件中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL...如何将表查询的结果自动保存到*.txt文件中?相关的知识,希望对你有一定的参考价值。

只查询表,然后把它的结果保存到D:\,txt格式,以后可以要从这个文件里再把它插入回去..

请高手给一个保存和插入的语句,谢谢^_^

1、将SQL语句,保存到一个文本文件 s.sql 中

2、建立一个批处理文件runsql.bat,内容如下:
osql -S数据库名 -Usql用户名 -Psql用户密码 -i s.sql -o result.txt
(如果安装的是 SQL2000,可将上面的osql,改为 isql)

3、运行runsql.bat后,检查result.txt,这里就是SQL语句执行后的结果
参考技术A 如果数据保存的对象表已经存在,
insert
into
结果表(字段1,
字段2)
select
字段1,
字段2
from
检索表
where
……
如果如果数据保存的对象表尚未建立,可以偷懒,直接
select
字段1,
字段2
into
结果表
from
检索表
where
……
系统会自动按字段1,字段2建立结果表,字段属性从检索表继承

如何将php查询的所有结果保存到.txt文件?

我的查询给我一个数组结果:

$donnnes =

Table ( [0] => Table ( [sku_code] => A1101_0090_TU [SKU_EAN] => 9346799868270 ) ) 

我的.txt文件可以很好地创建自己,但可以像这样填充:

MMXC1_ | 9346799868270 | 0 | 0

MMXC1_ | | 0 | 1

MMXC1_ | | 1 | 4

...

[仅第一行被完全填充,在其他行中,两个管道'|'之间没有任何内容在我的var_dump($ data_final)中的“ MMXC1_”之后;所有数据都在那里,我的错误来自哪里?

$resultat = mysqli_query($bdd, "SELECT trim(concat(concat(SKU_ITEM_VARIANT,'_'),trim(SKU_SIZE)))as sku_code , SKU_EAN  FROM dwh_dev.dwh_d_sku"); 

    while ($donnees[] = mysqli_fetch_assoc($resultat)) {

    }
  print_r($donnees); //Array ( [0] => Array ( [sku_code] => A1101_0090_TU [SKU_EAN] => 9346799868270 ) 

    $constante = "MMXC1_";    

    $temp2 = array_column($donnees,  'SKU_EAN', 'sku_code');


            if (($handle = fopen("$nomcsv", "r")) !== FALSE) { 

                $firstLine = true;

                while (($data = fgetcsv($handle, 1000000, ";")) !== FALSE) 
                {   
                    if(!$firstLine) {


                        $SKU_EAN = $temp2[$data[6].'_'.$data[7].'_'.$data[8]];
                        var_dump($SKU_EAN); //A1101_0090_TU A1104_0090_TU

                        // Create line here and immediately add it to `$data_final`
                        $data_final[] = $constante.'|'.$SKU_EAN.'|'.$data[12].'|'.$data[13]; 
                        var_dump($data_final); // array(1) { ["A1101_0090_TU"]=> string(13) "9346799868270" } array(1) { [0]=> string(26) "MMXC1_|9346799868270|0|0" } array(2) { [0]=> string(26) "MMXC1_|9346799868270|0|0" [1]=> string(13) "MMXC1_||0|0" }
                     }
                     $firstLine = false;
                }   
            }



                     $cheminfile = "//alcyons/IT/PhotoShoot/retail/CSV/TXT_Finaux/MMX".date('His').".txt";

                    $fp = fopen("$cheminfile", "w");

                    fputcsv($fp, $data_final,  "
");                              

                    fclose($fp);    
答案

您为什么在.txt文件上使用fputcsv?使用fwrite代替。

替换

fputcsv($fp, $data_final,  "
");                              

foreach($data_final as $data){
   fwrite($fp,$data."
");
}

以上是关于SQL...如何将表查询的结果自动保存到*.txt文件中?的主要内容,如果未能解决你的问题,请参考以下文章

如何把SQL语句的查询结果保存到文件中?

将 SQL 查询结果作为 txt 文件自动导出到 Azure Blob 存储

如何将php查询的所有结果保存到.txt文件?

如何使用 LINQ 将表列查询到数组中

将一个表的查询结果插入到另一个表中(oracle、mysql、sql 、GP)

sql 将表导出到Txt / CSV文件