请教一个db2输出格式的问题
在英文代码页下 db2 export to filename.txt of del modified by coldel0x7c select * from tablename 或者指定modified by coldel|
db2数据库如何将数据导出?
如果觉得麻烦. 安装一个 dbvisualizer 这个工具可以导出很多格式. 操作也非常方便.
sql*plus中怎么格式化输出
set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:\drop_table.sql
SELECT ‘DROP TABLE ‘|| table_name ||’;’ FROM user_tables;
1.使用SQL*PLUS动态生成批量脚本
将spool与select命令结合起来使用,可以生成一个脚本,脚本中包含有可以批量执行某一任务的语句。
例1:
生成一个脚本,删除SCOTT用户下的所有的表:
a. 创建gen_drop_table.sql文件,包含如下语句:
SPOOL c:\drop_table.sql
SELECT ‘DROP TABLE ‘|| table_name ||’;’ FROM user_tables;
SPOOL OFF
b. 以SCOTT用户登录数据库
SQLPLUS > @ …..\gen_dorp_table.sql
c. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示:
‘DROPTABLE’||TABLE_NAME||’;’
——————————————————————————–
DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;
5 rows selected.
SQL> SPOOL OFF
d. 对生成的drop_table.sql文件进行编辑去掉不必要的部分,只留下drop table …..语句
e. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。
SQLPLUS > @ c:\dorp_table.sql
在上面的操作中,在生成的脚本文件中会有多余的字符,如运行的sql语句,标题,或返回的行数,需要我们编辑该脚本后再运行,给实际的操作带来诸多不便。懒惰是人的本性,这促使我们用更简单的办法来实现上面的任务。
a. 创建gen_drop_table.sql文件,包含如下语句:
set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:\drop_table.sql
SELECT ‘DROP TABLE ‘|| table_name ||’;’ FROM user_tables;
SPOOL OFF
b. 以SCOTT用户登录数据库
SQLPLUS > @ …..\gen_dorp_table.sql
c. 在c盘根目录下会生成文件drop_table.sql文件,包含删除所有表的语句,如下所示:
DROP TABLE DEPT;
DROP TABLE EMP;
DROP TABLE PARENT;
DROP TABLE STAT_VENDER_TEMP;
DROP TABLE TABLE_FORUM;
d. 在scott用户下运行dorp_table.sql文件,删除scott用户下所有的表。
SQLPLUS > @ c:\dorp_table.sql
2.将一个表中的数据导出生成一个文本文件,列与列之间以”,”隔开
set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:\drop_table.sql
select DEPTNO || ‘,’ || DNAME FROM DEPT;
SPOOL OFF
将上面的内容保存为一个文本文件后,以scott登录,执行该文件后显示结果:
10,ACCOUNTING
20,RESEARCH
30,SALES
40,OPERATIONS
通过上面的两个例子,我们可以将:
set echo off
set feedback off
set newpage none
set pagesize 5000
set linesize 500
set verify off
set pagesize 0
set term off
set trims on
set linesize 600
set heading off
set timing off
set verify off
set numwidth 38
SPOOL c:\具体的文件名
你要运行的sql语句
SPOOL OFF
作为一个模版,只要将必要的语句假如这个模版就可以了。
在oracle的较新版本中,还可以用set colsep命令来实现上面的功能:
SQL> set colsep ,
SQL> select * from dept;
10,ACCOUNTING ,NEW YORK
20,RESEARCH ,DALLAS
30,SALES ,CHICAGO
40,OPERATIONS ,BOSTON
35,aa ,bb
3.动态生成spool命令所需的文件名
在我们上面的例子中,spool命令所需要的文件名都是固定的。有时我们需要每天spool一次,并且每次spool的文件名都不相同,如文件名包含当天的日期,该如何实现呢?
column dat1 new_value filename;
select to_char(sysdate,’yyyymmddhh24mi’) dat1 from dual;
spool c:\&&filename..txt
select * from dept;
spool off;
4.如何从脚本文件中得到WINDOWS环境变量的值:
在windos中:
spool c:\temp\%ORACLE_SID%.txt
select * from dept;
…
spool off
在上面的例子中,通过%ORACLE_SID%的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt
在UNIX中:
spool c:\temp\$ORACLE_SID.txt
select * from dept;
…
spool off
在上面的例子中,通过$ORACLE_SID的方式引用环境变量ORACLE_SID的值,如果ORACLE_SID的值为orcl,则生成的spool文件名为:orcl.txt
5.如何指定缺省的编辑脚本的目录
在sql*plus中,可以用save命令,将上一条执行的sql语句保存到一个文件中,但是如何设置该文件的缺省目录呢?
通过SQL> set editfile c:\temp\file.sql 命令,可以设置其缺省目录为c:\tmpe,缺省文件名为file.sql。
6.如何除去表中相同的行
找到相同的行:
SELECT * FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID)
FROM dept b
WHERE a.deptno = b.deptno
AND a.dname = b.dname — Make sure all columns are compared
AND a.loc = b.loc);
注释:
如果只找deptno列相同的行,上面的查询可以改为:
SELECT * FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID)
FROM dept b
WHERE a.deptno = b.deptno)
删除相同的行:
DELETE FROM dept a
WHERE ROWID <> (SELECT MAX(ROWID
FROM dept b
WHERE a.deptno = b.deptno
AND a.dname = b.dname — Make sure all columns are compared
AND a.loc = b.loc);
注意:上面并不删除列值为null的行。
7.如何向数据库中插入两个单引号(’’)
Insert inot dept values(35,’aa’’’’bb’,’a’’b’);
在插入时,用两个’表示一个’。
8.如何设置sql*plus的搜寻路径,这样在用@命令时,就不用输入文件的全路径。
设置SQLPATH环境变量。
如:
SQLPATH = C:\ORANT\DBS;C:\APPS\SCRIPTS;C:\MYSCRIPTS
9.@与@@的区别是什么?
@等于start命令,用来运行一个sql脚本文件。
@命令调用当前目录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本文件。
@@用在脚本文件中,用来指定用@@执行的文件与@@所在的文件在同一目录,而不用指定全路径,也不从SQLPATH环境变量指定的路径中寻找文件,该命令一般用在嵌套脚本文件中。
10.&与&&的区别
&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。
&&用来创建一个持久变量,就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。当用&&命令引用这个变量时,不会每次遇到该变量就提示用户键入值,而只是在第一次遇到时提示一次。
如,将下面三行语句存为一个脚本文件,运行该脚本文件,会提示三次,让输入deptnoval的值:
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
将下面三行语句存为一个脚本文件,运行该脚本文件,则只会提示一次,让输入deptnoval的值:
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
11.引入copy的目的
Copy命令在两个数据库之间拷贝数据时特别有用,特别是该命令可以在两个数据库之间传递long型字段的数据。
缺点:
在两个数据库之间传递数据时,有可能丢失精度(lose precision)。
12.问什么在修改大量的行时,我的脚本会变得很慢?
当通过PL/SQL块修改一个表中的许多行时,你会创建在表上创建一个cursor,但是只有在你关闭cursor时,才会释放ROLLBACK SEGMENT,这样,当cursor仍然打开时,修改过程会变慢,这是因为数据库不得不搜寻大量的rollback segment以便于维护读一致性。为了避免这样情况,试着在表上加一个标志字段来描述该行是否已经被修改,然后关闭该cursor,然后再打开该 cursor。每次可以修改5000行.
SPOOL OFF
需要写一个简单的脚本,将所有数据文件、控制文件、在线日志文件等输出到一个文件中,一口气写完之后,发现输出结果中每行之间都有一空行,非常不爽,研究了一下 sqlplus 的设置参数之后解决了问题,把几个常用的参数在这里做一个小结,方便以后查询。
set echo on/off 是否显示脚本中的需要执行的命令
set feedback on/off 是否显示 select 结果之后返回多少行的提示
set linesize n 设置一行最多显示多少字符,之前就是因为 n 设得过大,导致行与行之间有空白行
set termout on/off 在执行脚本时是否在屏幕上输出结果,如果 spool 到文件可以将其关闭
set heading on/off 是否显示查询结果的列名,如果设置为 off,将用空白行代替,如果要去除该空白行,可以用 set pagesize 0
set pagesize n 设置每页的行数,将 n 设为 0 可以不显示所有 headings, page breaks, titles, the initial blank line, and other formatting information
set trimspool on/off 在 spool 到文件时是否去除输出结果中行末尾的空白字符,之前的隔行可以用该参数去掉,和该参数对应的是 trimout,后者用于屏幕输出
set trimout on/off 是否去掉屏幕上输出结果行末尾的空白字符
SQL> select * from aa;
BB CC
———- ———-
1 999999.99
SQL> col bb format ””99.9””;
SQL> select * from aa;
BB CC
—– ———-
1.0 999999.99
SQL> col bb head ””99.9””;
SQL> select * from aa;
99.9 CC
—– ———-
1.0 999999.99
SQL> col bb head ””学号””;
SQL> select * from aa;
学号 CC
—– ———-
1.0 999999.99
SQL> col bb format ””99””;
SQL> select * from aa;
学号 CC
—- ———-
1 999999.99
SQL> col bb head ””学|号””;
SQL> select * from aa;
学
号 CC
— ———-
1 999999.99
SQL> select count(bb),sum(cc) from aa;
COUNT(BB) SUM(CC)
———- ———-
8192 8191999918
SQL> col sum(cc) format ””9999999999.99””;
SQL> select count(bb),sum(cc) from aa;
COUNT(BB) SUM(CC)
———- ————–
8192 8191999918.08
SQL> col sum(cc) format ””9999999999.99”” head ””总分””;
SQL> col count(bb) format ””999999”” head ””人数””;
SQL> select count(bb),sum(cc) from aa;
人数 总分
——- ————–
8192 8191999918.08
sql 格式化输出时间
<% set rs=server.CreateObject(“adodb.recordset”)
sql=”select top 10 YEAR(addtime)+’年’+MONTH(addtime)+’月’+DAY(addtime)+’日’ as addtimetemp from log”
rs.open sql,conn,1,1
do while not rs.eof %>
<%= rs(“addtimetemp”) %><br /> ‘显示出格式后的时间
<% rs.movenext
loop %>
还有一个方法就是用sql的format
select top 10 format(addtime,’yyyy年mm月dd日’) from log
这个方法简单好用
我想把db2里面存储过程,方法,表结构,表数据整个导出.
db2move只能到出表结构和数据….导出其他的用db2look 如: db2look -d databasename -a -e -i username -w password -o db2.sql
【急】如何导出服务器上的db2数据库,是导出整个数据库,包括表结构表空间 数据等
不用,可以远程连接到服务器,windows系统可以通过远程连接,linux/unix系统可以通过ssh/telnet连接,在服务器上用db2 connect to 数据库名连接数据库,然后通过db2look -d 数据库名 -e -a -c -o 导出文件名.sql -i 用户名 -w 密码 导出结构,通过db2move 数据库名 export -u 用户名 -p 密码 导出数据;在本地导入前先connect 数据库,然后db2 -td; -cf 导出文件名.sql 在本地根据该文件sql建立数据结构,之后用db2move 数据库名 load -u 用户名 -p 密码 导入数据
mongodb 查询结果进行格式化输出 哪个操作
展开全部
nodejs操作mongodb查询所有数据的方法:
var MongoClient = require(‘mongodb’).MongoClient;
var DB_CONN_STR = ‘mongodb://localhost:27017/wilsondb1’;
var selectData = function(db, callback) {
//连接到表
var collection = db.collection(‘tb2’);
//查询数据
var whereStr = {“name”:’wilson001′};
collection.find(whereStr).toArray(function(err, result) {
if(err)
{
console.log(‘Error:’+ err);
return;
}
callback(result);
});
}
MongoClient.connect(DB_CONN_STR, function(err, db) {
console.log(“连接成功!”);
selectData(db, function(result) {
console.log(result);
db.close();
});
});
格式化输出的几种方法
这要看你格什么盘啦,如果不是C盘,可在“我的电脑”中右击要格式化的盘,然后选择“格式化”就行. 还有就是在“控制面板”中选择“管理工具”,再选择“计算机管理”中也可格式化. 还有就是在DOS下也可格式化.
DB2查询的结果怎样才能导出为Excel表
可以在命令行导出为csv格式,用Excel可以打开csv格式文件.$db2 "export to file1.del of del select …. from where … with ur"上述命令使用export工具导出select 语句查询出的结果,并写入文件file1.del.del格式的文件内容与csv格式兼容的,可以用Excel打开编辑.
怎么格式化输出抓取内容?
自己用回车给模板分行,在模板的内容弄好后加一个回车就行了