sql脚本中出现SQL> SQL> 以及 列名重命名不显示问题
2012-02-03 11:26
274 查看
QL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7 8 9 10 11 20120131 消费 1583 48627.56
20120131 消费撤销 33 74.32
20120131 卡启动记录 614 0
出现SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4
只需要在sql脚本开始的时候添加 sqlplus -s user/pass >>!
data
!
可解决
sqlplus 中执行结果
时间 交易类型 交易数 交易金额
-------- --------------- ---------- ----------
20120131 消费 1583 48627.56
20120131 消费撤销 33 74.32
20120131 卡启动记录 614 0
sql命令如下
SQL> select t.inst_date as "时间",cast(d.dict_name as char(15)) as "交易类型", count(1) as "交易数", sum(t.amt_trans/100) as "交易金额"
2 from tbl_txn_his t , tb_ent_dict_info d
3 where t.inst_date >= 20120131
4 and t.inst_date <= 20120131
5 and t.txn_num in (1105, 3105, 7000, 7010)
6 and t.revsal_flag = '0'
7 and t.cancel_flag = '0'
8 and t.resp_code ='00'
9 and t.txn_num = d.dict_id
10 and d.dict_type = 999
11 group by d.dict_name , t.inst_date
12 ;
在不显示列名,目前的办法是这样
select '时间 交易类型 交易数量 金额 ' from dual;
union all;
select t.inst_date as "时间",cast(d.dict_name as char(15)) as "交易类型", count(1) as "交易数", sum(t.amt_trans/100) as "交易金额"
from tbl_txn_his t , tb_ent_dict_info d
where t.inst_date >= 20120131
and t.inst_date <= 20120131
and t.txn_num in (1105, 3105, 7000, 7010)
and t.revsal_flag = '0'
and t.cancel_flag = '0'
and t.resp_code ='00'
and t.txn_num = d.dict_id
and d.dict_type = 999
group by d.dict_name , t.inst_date;
ps:附上Oracle SQL*PLUS命令应用 设置显示列格式的相关命令
设置列格式的相关命令
1. 改变列的显示长度
COLUMN column_name FOR[MAT] format
备注:
注意该命令将保持一直生效直至输入了一个新的格式值或者退出了SQL*PLUS, 其中字段类型可以为Char, Varchar2, varchar。
如果SQL*PLUS的WARP变量的值被设置为"开"(默认值), 那么字段的内容将会在format命令规定的长度处折行, 否则的话超过规定长度的后续字符将会被截取。
如果你有多个相同显示属性的列需要设置,那么使用column 字段名 like 你想要复制显示属性的字段heading 字段名。注意如果不加上后面heading 字段名那么复制的时候连字段名都会复制过去,显然不适合一般要求。
2. 格式化NUMBER类型列的显示
SQL> COLUMN SAL FORMAT $99,990
3. 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
4. 设置一个列的回绕方式
COLUMN WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
备注:此命令常和format合用,当列值过长时可以使用该命令格式话输出, wrapped根据字符长度控制, word_wrapped根据单词控制, truncated则直接截取等长字符。
5. 清空当前所有列的设置,恢复成默认格式
CLEAR COLUMNS
下面我们来看一下这些命令的综合应用:
SQL> desc testtable;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)
REMARK VARCHAR2(50)
SALARY NUMBER
SQL> select * from testtable;
ID NAME
---------- ----------------------------------------
REMARK
--------------------------------------------------------------------------------
SALARY
----------
1 paul
99999
现在我们要对这个输出进行修改,包括:
①分别设置输出列的长度为2、10、6、8
②分别设置输出列的列名居中
③格式化Salary列的值为$999,999
④将Remark列的空值替换为字符串User description
⑤设置Remark列的回绕方式为按单词回绕
下面我们来看看这个SQL*PLUS命令应该如何写:
SQL> column ID justify center
SQL> column Name justify center format a10
SQL> column Remark justify center format a6 NULL 'User description' word_wrapped
SQL> column salary justify right format $999,999
SQL> select * from testtable;
ID NAME REMARK SALARY
---------- ---------- ------ ---------
1 paul User $99,999
descri
ption
看看其中的SQL语句:
Column Remark justify center format a6 NULL 'User description' word_wrapped。
该句设置了:列名居中显示、列的长度为6个字符、空值用'User description'代替、按单词回绕(所以是在User处折行,而不是在User d出折行,虽然列的长度可以为6)
设置页面及行格式的相关命令
1.设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
2.设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
3.设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
备注:以上三个命令经常合用, 首先设置每行显示的最大长度, 再设置每页有多少行, 最后设置页间距. 如果要获取较好格式的话可以配合Column format命令格式化每个字段的长度.
下面我们来实地查看一下上述命令在结果输出中的应用
SQL> select * from testtable;
ID NAME REMARK
---------- ---------- --------------------------------------------------
REG_DATE SALARY
---------- ----------
1 paul lin
07-6月 -08 5500
2 bob lin common user
06-6月 -08 6500
SQL>
下面我们要做的就是:
①调整页面最大显示长度为200
②设置每页只显示一条记录
③每页之间间隔两个空
SQL> set linesize 200 pagesize 1 newpage 2;
SQL>
SQL> /
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
可以看到页面的输出并不让人满意(标题和虚线都没有了),现在我们使用一种令人比较满意的设置:
SQL> set linesize 200 pagesize 999 newpage;
SQL>
SQL>
SQL> /
ID NAME REMARK REG_DATE SALARY
---------- ---------- -------------------------------------------------- ---------- ----------
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
实际上该命令的最后设置newpage会在每页的前面加上一个黑色的小方框(在这里不能显示),以提示这是新一页的开始,假如你不想进行任何的提示那么只要设置newpage为none就可以了(你所看到的输出和现在的一模一样)。
至于linesize的设置则要考虑屏幕和打印机的大小了。
20120131 消费撤销 33 74.32
20120131 卡启动记录 614 0
出现SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> 2 3 4
只需要在sql脚本开始的时候添加 sqlplus -s user/pass >>!
data
!
可解决
sqlplus 中执行结果
时间 交易类型 交易数 交易金额
-------- --------------- ---------- ----------
20120131 消费 1583 48627.56
20120131 消费撤销 33 74.32
20120131 卡启动记录 614 0
sql命令如下
SQL> select t.inst_date as "时间",cast(d.dict_name as char(15)) as "交易类型", count(1) as "交易数", sum(t.amt_trans/100) as "交易金额"
2 from tbl_txn_his t , tb_ent_dict_info d
3 where t.inst_date >= 20120131
4 and t.inst_date <= 20120131
5 and t.txn_num in (1105, 3105, 7000, 7010)
6 and t.revsal_flag = '0'
7 and t.cancel_flag = '0'
8 and t.resp_code ='00'
9 and t.txn_num = d.dict_id
10 and d.dict_type = 999
11 group by d.dict_name , t.inst_date
12 ;
在不显示列名,目前的办法是这样
select '时间 交易类型 交易数量 金额 ' from dual;
union all;
select t.inst_date as "时间",cast(d.dict_name as char(15)) as "交易类型", count(1) as "交易数", sum(t.amt_trans/100) as "交易金额"
from tbl_txn_his t , tb_ent_dict_info d
where t.inst_date >= 20120131
and t.inst_date <= 20120131
and t.txn_num in (1105, 3105, 7000, 7010)
and t.revsal_flag = '0'
and t.cancel_flag = '0'
and t.resp_code ='00'
and t.txn_num = d.dict_id
and d.dict_type = 999
group by d.dict_name , t.inst_date;
ps:附上Oracle SQL*PLUS命令应用 设置显示列格式的相关命令
设置列格式的相关命令
1. 改变列的显示长度
COLUMN column_name FOR[MAT] format
备注:
注意该命令将保持一直生效直至输入了一个新的格式值或者退出了SQL*PLUS, 其中字段类型可以为Char, Varchar2, varchar。
如果SQL*PLUS的WARP变量的值被设置为"开"(默认值), 那么字段的内容将会在format命令规定的长度处折行, 否则的话超过规定长度的后续字符将会被截取。
如果你有多个相同显示属性的列需要设置,那么使用column 字段名 like 你想要复制显示属性的字段heading 字段名。注意如果不加上后面heading 字段名那么复制的时候连字段名都会复制过去,显然不适合一般要求。
2. 格式化NUMBER类型列的显示
SQL> COLUMN SAL FORMAT $99,990
3. 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
4. 设置一个列的回绕方式
COLUMN WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
备注:此命令常和format合用,当列值过长时可以使用该命令格式话输出, wrapped根据字符长度控制, word_wrapped根据单词控制, truncated则直接截取等长字符。
5. 清空当前所有列的设置,恢复成默认格式
CLEAR COLUMNS
下面我们来看一下这些命令的综合应用:
SQL> desc testtable;
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2(20)
REMARK VARCHAR2(50)
SALARY NUMBER
SQL> select * from testtable;
ID NAME
---------- ----------------------------------------
REMARK
--------------------------------------------------------------------------------
SALARY
----------
1 paul
99999
现在我们要对这个输出进行修改,包括:
①分别设置输出列的长度为2、10、6、8
②分别设置输出列的列名居中
③格式化Salary列的值为$999,999
④将Remark列的空值替换为字符串User description
⑤设置Remark列的回绕方式为按单词回绕
下面我们来看看这个SQL*PLUS命令应该如何写:
SQL> column ID justify center
SQL> column Name justify center format a10
SQL> column Remark justify center format a6 NULL 'User description' word_wrapped
SQL> column salary justify right format $999,999
SQL> select * from testtable;
ID NAME REMARK SALARY
---------- ---------- ------ ---------
1 paul User $99,999
descri
ption
看看其中的SQL语句:
Column Remark justify center format a6 NULL 'User description' word_wrapped。
该句设置了:列名居中显示、列的长度为6个字符、空值用'User description'代替、按单词回绕(所以是在User处折行,而不是在User d出折行,虽然列的长度可以为6)
设置页面及行格式的相关命令
1.设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
2.设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
3.设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
备注:以上三个命令经常合用, 首先设置每行显示的最大长度, 再设置每页有多少行, 最后设置页间距. 如果要获取较好格式的话可以配合Column format命令格式化每个字段的长度.
下面我们来实地查看一下上述命令在结果输出中的应用
SQL> select * from testtable;
ID NAME REMARK
---------- ---------- --------------------------------------------------
REG_DATE SALARY
---------- ----------
1 paul lin
07-6月 -08 5500
2 bob lin common user
06-6月 -08 6500
SQL>
下面我们要做的就是:
①调整页面最大显示长度为200
②设置每页只显示一条记录
③每页之间间隔两个空
SQL> set linesize 200 pagesize 1 newpage 2;
SQL>
SQL> /
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
可以看到页面的输出并不让人满意(标题和虚线都没有了),现在我们使用一种令人比较满意的设置:
SQL> set linesize 200 pagesize 999 newpage;
SQL>
SQL>
SQL> /
ID NAME REMARK REG_DATE SALARY
---------- ---------- -------------------------------------------------- ---------- ----------
1 paul lin 07-6月 -08 5500
2 bob lin common user 06-6月 -08 6500
SQL>
实际上该命令的最后设置newpage会在每页的前面加上一个黑色的小方框(在这里不能显示),以提示这是新一页的开始,假如你不想进行任何的提示那么只要设置newpage为none就可以了(你所看到的输出和现在的一模一样)。
至于linesize的设置则要考虑屏幕和打印机的大小了。
相关文章推荐
- html显示数据库中的字段内容为sql语句时,出现隐藏了换行等字符的问题解决
- 制作.sql脚本时候出现的问题!
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 导入sql脚本时中文出现乱码的奇怪问题
- mysql source 执行sql脚本,中文变量不显示问题或乱码问题
- 0.jquery 验证,以及显示出现错误的地方 1.当用jquery.validate与ajax时候特别小心在每句后面的逗号问题,如果不需要的地方加上逗号会造成页面无法进入js验证
- osql执行SQL脚本内容包含中文时出现乱码问题的解决办法
- 自定义dialog显示详细资料以及出现的布局问题解决
- PowerDesigner16.5快速入门显示,注释comment配置方法,以及创建sql文件过程中需要注意的一些问题
- [Android]在ListView嵌套GridView中出现的点击事件处理以及gridview显示不全的有关问题
- 用PL/SQL Developer创建Oracle触发器以及触发器的一点点知识与出现的问题
- osql执行SQL脚本内容包含中文时出现乱码问题的解决办法
- listcontrol不能显示列名以及不能显示后续列内容的问题
- 纯代码代码创建textView 输入文字时出现文字不从第一行显示问题 以及textField的初始化
- osql执行SQL脚本内容包含中文时出现乱码问题的解决办法
- jquery下 动态显示jqGrid 以及jqGrid的属性设置容易出现的问题
- 【COCOS2DX-LUA 脚本开发之十三】解决lua项目编译Android出现get data from file failed以及路径等问题
- sqlserver2008设置表、存储过程等对象筛选出现“无法为该请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc) ”以及智能提示失效问题
- 打开网站php出现乱码问题的解决办法以及无法显示验证码
- 用PL/SQL Developer创建Oracle触发器以及触发器的一点点知识与出现的问题