Oracle之格式化查询命令
Oracle日期格式化以及extract函数的使用
Oracle⽇期格式化以及extract函数的使⽤ 由于业务需要,这两天在学习Oracle,发现Oracle⾥⾯的⽇期它会给你转成⼀种很不习惯的格式,于是想着怎么样把它弄成年、⽉、⽇的格式来显⽰,查资料、看⽂档,最终找到解决办法了,其实是⽤到了to_char⽅法。
例如,在Oracle⾥⾯,⼀个表格⾥⽇期如2017-05-06,列名为time,查询后发现返回的是06-5⽉ -17这种格式的,看着贼不爽,要想把它转成年⽉⽇这种格式的,可以这样做,to_char(time, 'YYYY-MM-DD') as time // 括号⾥的time表⽰表中的列名,第⼆个time则表⽰转换后的⽇期列名仍然为time 现在转换后的⽇期就是这样的,2017-05-06 那么extract函数是⼲什么的呢?extract英语意思是提取、选取,顾名思义,它表⽰从⼀个date类型中截取某⼀特定的部分,例如,选取年或⽉或⽇。
例如有这样⼀个表格: 现在我要从表格myTable中选取time中年份为2018年的所有数据,可以这样做, select title,play,time from myTable where extract(year from time) = 2018;或者:select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(year from time) = 2018 结果显然是都返回了(这⾥只是做个演⽰) 现在我要从表格myTable中选取time中⽉份为5的所有数据,操作为:select title,play,time from myTable extract(month from time) = 5;或者:select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(month from time) = 5 从表格myTable中选取time中⽇期为6的所有数据,操作为:select title,play,time from myTable extract(day from time) = 6;或者:slect title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(day from time) = 6; 语法如下:extract(year|month|day|hour|minute|second from column_name) = value。
oracle数据库模糊查询语句
oracle数据库模糊查询语句在Oracle数据库中,模糊查询可以使用通配符和特定的SQL函数来实现。
其中,通配符包括百分号(%)和下划线(_)。
下面我将从多个角度介绍Oracle数据库中实现模糊查询的方法。
首先,使用LIKE操作符进行模糊查询是最常见的方法。
例如,如果你想要查询以特定字符串开头的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'your_string%';这将返回所有以"your_string"开头的记录。
同样,如果你想要查询以特定字符串结尾的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'%your_string';这将返回所有以"your_string"结尾的记录。
另外,如果你想要查询包含特定字符串的记录,可以使用以下语句:sql.SELECT FROM table_name WHERE column_name LIKE'%your_string%';这将返回所有包含"your_string"的记录。
另一种方法是使用REGEXP_LIKE函数进行正则表达式匹配。
这种方法可以更灵活地进行模糊查询,例如可以指定多个匹配模式。
以下是一个示例:sql.SELECT FROM table_name WHERE REGEXP_LIKE(column_name, 'pattern');在这个示例中,'pattern'是你要匹配的正则表达式模式。
除了使用LIKE操作符和REGEXP_LIKE函数,Oracle数据库还提供了其他一些模糊查询的方法,比如使用ESCAPE子句来转义通配符,或者使用CONTAINS函数进行全文搜索。
oracle格式化sql语句
oracle格式化sql语句当你在使用Oracle数据库时,有时候需要将SQL语句进行格式化以使其更易读和理解。
以下是一种常用的方法来格式化SQL语句。
首先,你可以使用`DBMS_SQL`包中的`FORMAT_SQL`过程来格式化SQL语句。
该过程可以让你指定每行显示的行数,以及是否使用关键字高亮显示。
下面是一个示例:```sqlSELECT DBMS_SQL.FORMAT_SQL('SELECT * FROM your_table WHERE your_column = '''||your_value||'''', 100, TRUE) AS formatted_sql FROM DUAL;```在上面的示例中,`'SELECT * FROM your_table WHERE your_column = '''||your_value||'''`是你想要格式化的SQL语句,`100`是每行显示的行数,`TRUE`表示使用关键字高亮显示。
你可以根据需要调整这些参数。
另外,你还可以使用Oracle SQL Developer工具中的"Format SQL"功能来自动格式化SQL语句。
该功能可以让你在编辑器中直接对SQL语句进行格式化,非常方便实用。
以下是如何使用该功能的步骤:1. 打开Oracle SQL Developer工具,并打开你想要格式化的SQL文件或查询窗口。
2. 在菜单栏中选择"Tools"(工具)-> "Format SQL"(格式化SQL)。
3. 在弹出的对话框中,你可以选择要格式化的SQL语句范围(全部或当前行),以及是否使用关键字高亮显示。
4. 点击"OK"按钮,Oracle SQL Developer将自动对选定的SQL语句进行格式化,并显示格式化后的结果。
Oracle格式化输出
1. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORKsql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING 'Employee|Name'Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNO ENAME JOB---------- ---------------------------------------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME JOB---------- ---------------------------------------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMAN对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS2. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL{ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 设置当前session是否对修改的数据进行自动提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句SQL> SET ECHO {ON|OFF}3).是否显示当前sql语句查询或修改的行数SQL> SET FEED[BACK] {6|n|ON|OFF}默认只有结果大于6行时才显示结果的行数。
数据库格式化命令
数据库格式化命令数据库格式化命令是数据库管理员经常会用到的工具,通过使用这些命令可以使数据库的维护更加高效。
下面将会介绍常用的数据库格式化命令,以供大家参考。
一、MySQL1. 查看数据库列表:使用命令“SHOW DATABASES;”可以查看当前MySQL服务器上所有的数据库列表。
2. 查看表结构:使用命令“DESCRIBE table_name;”可以查看指定表的结构。
3. 数据库备份:使用命令“mysqldump -u username -p database_name > backup.sql”可以将指定数据库备份为SQL文件。
4. 数据库恢复:使用命令“mysql -u username -p database_name < backup.sql”可以从SQL文件还原指定数据库。
5. 数据库优化:使用命令“OPTIMIZE TABLE table_name;”可以优化指定表。
二、Oracle1. 查看数据库版本:使用命令“SELECT * FROM v$version;”可以查看当前Oracle数据库的版本信息。
2. 查看当前登录用户:使用命令“SHOW user;”可以查看当前登录的Oracle用户信息。
3. 数据库备份:使用命令“exp username/password@database file=backup.dmp”可以将指定数据库备份为DMP文件。
4. 数据库恢复:使用命令“imp username/password@database file=backup.dmp full=y”可以从DMP文件还原指定数据库。
5. 数据库优化:使用命令“ANALYZE TABLE table_name COMPUTE STATISTICS;”可以优化指定表。
三、SQL Server1. 查看数据库列表:使用命令“SELECT name FROM sys.databases;”可以查看当前SQL Server服务器上所有的数据库列表。
oracle数据库时间查询语句
Oracle数据库是一种强大的关系型数据库管理系统,可用于数据存储和管理。
在开发和维护Oracle数据库时,时间查询是一个非常常见且必要的需求,下文将介绍关于Oracle数据库时间查询的一些常用语句。
一、获取当前日期和时间我们可以使用系统函数SYSDATE获取当前日期和时间,例如:SELECT SYSDATE FROM DUAL;此语句将输出当前日期和时间的值,DUAL是Oracle数据库的一个虚拟表。
二、获取日期时间差针对某一特定时间,获取与当前时间的差值,我们可以使用以下语句:SELECT SYSDATE - hiredate FROM employees WHERE employee_id = 100;此语句将输出雇员100的入职时间与当前时间的差值。
三、日期格式化输出我们可以使用TO_CHAR函数将日期时间以特定的格式进行输出,例如:SELECT TO_CHAR(SYSDATE, 'YY-MM-DD HH24:MI:SS') FROM DUAL;此语句将输出当前日期和时间的值,并按照YY-MM-DD HH24:MI:SS格式进行输出。
四、时间戳查询我们可以使用TIMESTAMP数据类型来查询包含具体时间的记录,例如:SELECT * FROM employee_log WHERE log_time = TIMESTAMP '2022-02-22 08:30:00';此语句将查询employee_log表中记录时间为2022-02-22 08:30:00的记录。
五、时间函数Oracle数据库中还有许多其他有用的时间函数,如ADD_MONTHS、MONTHS_BETWEEN、LAST_DAY等,可用于获取日期的不同部分或计算两个日期之间的差值。
例如:SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL;此语句将输出当前日期加上3个月的值。
Oracle中SET指令
Oracle中 SET指令
1.设置每行显示的数据长度:SET LINESIZE 300; (有效范围是1-32767,默认情况下显示80个字符) 2.设置每页显示的数据行数:SET PAGESIZE 30; (最大值为50000,默认值为14,到了14行会把标题再次打出,下面跟数据)
define _editor=vim
登陆sqlplus后,想要调整表项的长度,可以使用COL命令格式化列的显示,例如COL ename FOR A10;。
这两个指令称为格式化பைடு நூலகம்令。
SQL> SET LINESIZE 200 SQL> SET PAGESIZE 50
这样设置是单次有效的,下次再用Oracle的时候又要重新设置,修改$ORACLE_HOME/sqlplus/admin/glogin.sql配置文件,增加这两个指令 即可。
--- Copyright (c) 1988, 2005, Oracle. All Rights Reserved. ... -- This script is automatically run -SET LINESIZE 300 SET PAGESIZE 30
Oracle格式化输出几个常用命令
Oracle格式化输出⼏个常⽤命令在使⽤Oracle命令⾏过程中⼀定会遇到输出格式问题,不同的格式化命令会使输出⼈性化。
1、set linesize(line) 设置sqlplus输出的最⼤⾏宽
2、set pagesize 设置页⾯的最⼤⾏数
3、set newpage 设置页⾯之间的空⾏数
4.spool sqlplus屏幕的⽂件输⼊输出命令
5、edit 使⽤⾃定义的编辑器编辑指定⽂件
6、save 保存当前session最近的sql语句⾄指定的⽂件中
7、host 返回到操作系统环境,类似!
8、start或@ 执⾏⽂件中的命令
9、column
column是sqlplus⾥最实⽤的⼀个命令,简写column为col,⽤于修改显⽰列名的宽度;
col name format a50--将列name(字符型)显⽰最⼤宽度调整为50个字符
col num format 9999999 --将列num(num型)显⽰最⼤宽度调整为7个字符
col name heading 姓名--将name的列名输出为姓名。
oracle format 用法
oracle format 用法(最新版)目录1.Oracle Format 简介2.Oracle Format 的基本语法3.Oracle Format 的应用示例4.Oracle Format 的优点和局限性正文【1.Oracle Format 简介】Oracle Format 是 Oracle 数据库中的一种数据格式,它可以用来对数据库中的数据进行格式化显示。
通过使用 Oracle Format,用户可以自定义数据的输出格式,以便更好地满足特定的数据分析和报告需求。
【2.Oracle Format 的基本语法】Oracle Format 的基本语法包括以下几个要素:- Format 关键字:用于定义数据格式化规则的开头和结尾。
- Format Model:定义数据格式化规则的具体内容。
- Element:定义数据格式化规则中的具体元素。
【3.Oracle Format 的应用示例】以下是一个 Oracle Format 的应用示例,该示例用于将数据库中的一列数据按照字符类型进行格式化显示:```SELECT emp_name,TO_CHAR(salary, "999999.99") AS formatted_salaryFROM employees;```在这个示例中,"999999.99" 是一个 format model,它表示将salary 列的数据按照 6 位数字和 2 位小数的格式进行显示。
【4.Oracle Format 的优点和局限性】Oracle Format 的优点包括:- 可以自定义数据的输出格式,满足不同的数据分析和报告需求。
- 可以提高数据的可读性和易理解性。
然而,Oracle Format 也存在一些局限性,例如:- 不能应用于所有的数据类型。
- 在进行复杂的数据格式化时,可能需要编写较为复杂的 format model。
ORACLE复习题含答案
简答题(4*5’)1、简述Oracle数据库体系结构的构成。
答:数据库实例,物理存储结构和逻辑存储结构。
实例包括内存结构与后台进程;物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式,与操作系统没有关系。
2、简述Oracle数据库逻辑存储结构的组成及相互关系。
答:Oracle数据库逻辑存储结构包括表空间、段、区、块四种。
其中,数据块是数据库中最小I/O单位,由若干连续的数据块组成的区是数据库中最小的存储分配单元,由若干区形成的段是相同类型的数据存储分配区域,由若干段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库。
3、简述Oracle数据库重做日志文件的作用。
答:重做日志文件,保存了用户对数据库所作的更新操作,包含的主要信息是记录事务的开始和结束、事务中每项操作的对象和类型、更新操作前后的数据值等。
4、简述索引作用并说明索引按不同分类依据分为哪些类。
答:创建索引的作用是为了提高对表中数据的查询效率。
根据索引值是否唯一,可分为唯一性索引和非唯一性索引;根据索引的组织结构不同,可分为平衡索引和位图索引;根据索引基于列数不同,可分为单列索引和复合索引。
5、简述Oracle的安全控制机制有哪些?答:1)、用户管理2)、权限管理3)、角色管理4)、表空间设置和配额5)、用户资源限制6)、数据库审计6、简述Oracle数据库角色的种类、作用以及如何利用角色为用户授权。
答:SYS:是数据库中具有最高权限的数据库管理员,可以启动、修改和关闭数据库,拥有数据字典;SYSTEM:是一个辅助的数据库管理员,不能启动和关闭数据库,但可以进行其他一些管理工作,如创建用户、删除用户等。
SCOTT:是一个用于测试网络连接的用户,其口令为TIGER。
PUBLIC:实质上是一个用户组,数据库中任何一个用户都属于该组成员。
Oracle 查询输出格式化文本
问题:使用查询语句输出的文本不方便导入到SQL Server 或Excel 中如:select empno, ename, hiredate, sal, comm from emp; 输出为:7369 SMITH 17-12月-80 8007499 ALLEN 20-2月-81 1600 3007521 WARD 22-2月-81 1250 5007566 JONES 02-4月-81 29757654 MARTIN 28-9月-81 1250 14007839 KING 17-11月-81 50007844 TURNER 08-9月-81 1500 07876 ADAMS 23-5月-87 1100主要问题:1.数值和文本不能分别;2.日期中有空格3.Null输出为空,不能对齐解决方案:1.字符型字段、日期型字段加上双引号。
例:'"' || ename || '"'(单引号,双引号,单引号,|| 连接运算符,字段名,|| 连接运算符,单引号,双引号,单引号)2.数值型将空值Null输出为0。
例:nvl(comm,0)3.如有其他问题,可相似解决。
示例:select empno, '"' || ename || '"', '"'||hiredate||'"', sal, nvl(comm,0) from emp;7369 "SMITH" "17-12月-80" 800 07499 "ALLEN" "20-2月-81" 1600 3007521 "WARD" "22-2月-81" 1250 5007566 "JONES" "02-4月-81" 2975 07654 "MARTIN" "28-9月-81" 1250 14007839 "KING" "17-11月-81" 5000 07844 "TURNER" "08-9月-81" 1500 07876 "ADAMS" "23-5月-87" 1100 0这样的查询结果保存到文本文件中,可以很方便的导入到SQL Server 或Excel 中。
Oracle与Mysql时间格式化
Oracle与Mysql时间格式化⼀,Oracle格式化时间:Oracle 获取当前⽇期及⽇期格式获取系统⽇期: SYSDATE()格式化⽇期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)格式化数字: TO_NUMBER注: TO_CHAR 把⽇期或数字转换为字符串TO_CHAR(number, '格式')TO_CHAR(salary, '$99,999.99')TO_CHAR(date, '格式')TO_DATE 把字符串转换为数据库中的⽇期类型TO_DATE(char, '格式')TO_NUMBER 将字符串转换为数字TO_NUMBER(char, '格式')返回系统⽇期,输出 25-12⽉-09select sysdate from dual;mi是分钟,输出 2009-12-25 14:23:31select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;mm会显⽰⽉份,输出 2009-12-25 14:12:31select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;输出 09-12-25 14:23:31select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual输出 2009-12-25 14:23:31select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual⽽如果把上式写作:select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual则会报错,因为⼩时hh是12进制,14为⾮法输⼊,不能匹配。
SqlServer、Oracle、MySQL日期格式化函数处理
SqlServer、Oracle、MySQL⽇期格式化函数处理⽬录Sql ServerCONVERT ( '取数长度' , '时间' , '类型')查询对应时间: 2021-03-17T19:18:18.007Select CONVERT(varchar(100), GETDATE(), 0) -- 03 17 2021 7:18PMSelect CONVERT(varchar(100), GETDATE(), 1) -- 03/17/21Select CONVERT(varchar(100), GETDATE(), 2) -- 21.03.17Select CONVERT(varchar(100), GETDATE(), 3) -- 2017-3-21Select CONVERT(varchar(100), GETDATE(), 4) -- 17.03.21Select CONVERT(varchar(100), GETDATE(), 5) -- 2017-3-21Select CONVERT(varchar(100), GETDATE(), 6) -- 17 03 21Select CONVERT(varchar(100), GETDATE(), 7) -- 03 17, 21Select CONVERT(varchar(100), GETDATE(), 8) -- 19:18:18Select CONVERT(varchar(100), GETDATE(), 9) -- 03 17 2021 7:18:18:007PMSelect CONVERT(varchar(100), GETDATE(), 10) -- 03-17-21Select CONVERT(varchar(100), GETDATE(), 11) -- 2021-3-17Select CONVERT(varchar(100), GETDATE(), 12) -- 210317Select CONVERT(varchar(100), GETDATE(), 13) -- 17 03 2021 19:18:18:007Select CONVERT(varchar(100), GETDATE(), 14) -- 19:18:18:007Select CONVERT(varchar(100), GETDATE(), 20) -- 2021-3-17 19:18Select CONVERT(varchar(100), GETDATE(), 21) -- 18:18.0Select CONVERT(varchar(100), GETDATE(), 22) -- 03/17/21 7:18:18 PMSelect CONVERT(varchar(100), GETDATE(), 23) -- 2021-3-17Select CONVERT(varchar(100), GETDATE(), 24) -- 19:18:18Select CONVERT(varchar(100), GETDATE(), 25) -- 18:18.0Select CONVERT(varchar(100), GETDATE(), 100) -- 03 17 2021 7:18PMSelect CONVERT(varchar(100), GETDATE(), 101) -- 03/17/2021Select CONVERT(varchar(100), GETDATE(), 102) -- 2021.03.17Select CONVERT(varchar(100), GETDATE(), 103) -- 17/03/2021Select CONVERT(varchar(100), GETDATE(), 104) -- 17.03.2021Select CONVERT(varchar(100), GETDATE(), 105) -- 17-03-2021Select CONVERT(varchar(100), GETDATE(), 106) -- 17 03 2021Select CONVERT(varchar(100), GETDATE(), 107) -- 03 17, 2021Select CONVERT(varchar(100), GETDATE(), 108) -- 19:18:18Select CONVERT(varchar(100), GETDATE(), 109) -- 03 17 2021 7:18:18:007PMSelect CONVERT(varchar(100), GETDATE(), 110) -- 03-17-2021Select CONVERT(varchar(100), GETDATE(), 111) -- 2021-3-17Select CONVERT(varchar(100), GETDATE(), 112) -- 20210317Select CONVERT(varchar(100), GETDATE(), 113) -- 17 03 2021 19:18:18:007Select CONVERT(varchar(100), GETDATE(), 114) -- 19:18:18:007Select CONVERT(varchar(100), GETDATE(), 120) -- 2021-3-17 19:18Select CONVERT(varchar(100), GETDATE(), 121) -- 18:18.0Select CONVERT(varchar(100), GETDATE(), 126) -- 2021-03-17T19:18:18.007Select CONVERT(varchar(100), GETDATE(), 130) -- 4 1442 7:18:18:007PMSelect CONVERT(varchar(100), GETDATE(), 131) -- 4/08/1442 7:18:18:007PMOracle-- 字符串转时间类型SELECT to_date(SYSDATE,'yyyy-mm-dd hh24:mi:ss') FROM dual;-- 时间转指定格式字符串SELECT to_char(SYSDATE,'yyyy"年"mm"⽉"dd"⽇"') FROM DUAL;-- 年季⽉⽇取值select to_char(sysdate,'yyyy') from dual; --年select to_char(sysdate,'Q' from dual; --季select to_char(sysdate,'mm') from dual; --⽉select to_char(sysdate,'dd') from dual; --⽇-- Oracle 时间SELECT SYSDATE FROM dual; -- 系统时间SELECT SYSTIMESTAMP FROM dual; -- 当前系统时间戳SELECT CURRENT_TIMESTAMP FROM dual; -- 与时区设置有关,返回的秒是系统的,返回的⽇期和时间是根据时区转换过的SELECT current_date FROM dual; -- 是对CURRENT_TIMESTAMP准确到秒的四舍五⼊select TO_DATE('19700101','yyyymmdd') + 1235728935/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual,其中1235728935就是unix/linux时间戳,转换完之后就表⽰为 2009-2-27 18:02:15。
oracle数据库查询命令
oracle数据库查询命令⼀、⽤户表数据查询1、⽤户查看当前⽤户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前⽤户的⾓⾊SQL>select * from user_role_privs;查看当前⽤户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from user_tab_privs;2、表 tabs查看⽤户下所有的表SQL>select * from user_tables;查看名称包含log字符的表SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0;查看某表的创建时间SQL>select object_name,created from user_objects where object_name=upper('&table_name');查看某表的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');查看放在ORACLE的内存区⾥的表SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;3、索引 ind查看索引个数和类别SQL>select index_name,index_type,table_name from user_indexes order by table_name;查看索引被索引的字段SQL>select * from user_ind_columns where index_name=upper('&index_name');查看索引的⼤⼩SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');4、序列号 seq查看序列号,last_number是当前值SQL>select * from user_sequences; 或 select * from seq;5、视图查看视图的名称SQL>select view_name from user_views;查看创建视图的select语句SQL>set view_name,text_length from user_views;SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩SQL>select text from user_views where view_name=upper('&view_name');6、同义词查看同义词的名称SQL>select * from user_synonyms;7、约束条件查看某表的约束条件SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name') and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;8、存储函数和过程查看函数和过程的状态SQL>select object_name,status from user_objects where object_type='FUNCTION'; SQL>select object_name,status from user_objects where object_type='PROCEDURE';查看函数和过程的源代码SQL>select text from all_source where owner=user and name=upper('&plsql_name');9、获取创建表语句 设置输出长度 SQL> SET LONG 9999; SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','tablename') FROM DUAL;⼆、查看数据库的SQL1、查看表空间的名称及⼤⼩select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_sizefrom dba_tablespaces t, dba_data_files dwhere t.tablespace_name = d.tablespace_namegroup by t.tablespace_name;2、查看表空间物理⽂件的名称及⼤⼩select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;3、查看回滚段名称及⼤⼩select segment_name, tablespace_name, r.status,(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,max_extents, v.curext CurExtentFrom dba_rollback_segs r, v$rollstat vWhere r.segment_id = n(+)order by segment_name ;4、查看控制⽂件select name from v$controlfile;5、查看⽇志⽂件select member from v$logfile;6、查看表空间的使⽤情况select sum(bytes)/(1024*1024) as free_space,tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE, (B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE"FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE CWHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;7、查看数据库库对象select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;8、查看数据库的版本Select version FROM Product_component_versionWhere SUBSTR(PRODUCT,1,6)='Oracle';9、查看数据库的创建⽇期和归档⽅式Select Created, Log_Mode, Log_Mode From V$Database;。
oracle format 用法
oracle format 用法Oracle Format 是 Oracle 数据库中用于格式化日期、时间和数字的函数。
它允许用户根据自己的需求对日期、时间和数字进行格式化,并返回一个格式化后的字符串作为结果。
下面将对 Oracle Format 的用法进行详细介绍。
1. 格式化日期:- TO_CHAR函数:TO_CHAR(date, format) 函数用于将日期格式化为字符串。
其中,date 表示要格式化的日期,format 是指定日期格式的参数。
例如,TO_CHAR(SYSDATE, 'YYYY-MM-DD') 可以将当前日期格式化为'YYYY-MM-DD' 格式的字符串。
- 示例:SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees;2. 格式化时间:- TO_CHAR函数:TO_CHAR(date, format) 函数同样可以用于将时间格式化为字符串。
只需将时间部分放入到 date 参数中。
例如,TO_CHAR(SYSDATE, 'HH24:MI:SS') 可以将当前时间格式化为 'HH24:MI:SS' 格式的字符串。
- 示例:SELECT TO_CHAR(hire_date, 'HH24:MI:SS') FROM employees;3. 格式化数字:- TO_CHAR函数:TO_CHAR(number, format) 函数还可以将数字格式化为字符串。
其中,number 表示要格式化的数字,format 是指定数字格式的参数。
例如,TO_CHAR(salary, '$99,999.99') 可以将工资格式化为带有美元符号和千位分隔符的字符串。
- 示例:SELECT TO_CHAR(salary, '$99,999.99') FROM employees;需要注意的是,日期、时间和数字格式化字符串中的格式符号是有特定含义的,比如 'YYYY' 表示四位年份,'MM' 表示两位月份。
oracle数字格式化
我们在数据库中存储了利率等信息是小于1的查询出结果后直接转换为字符串这时候就有问题了比如05取出来后变成
oracle数 字 等信息是小于1的查询出结果后直接转换为字符串,这时候就有问题了比如0.5取出来后变成.5 这时候放到前端显得不伦不类。
解决
to_char 修改数字的格式, 常用的集中情况如下
ORACLE数字的格式化参数大全
ORACLE数字的格式化参数大全数值格式串说明及示例---------- -----------------------------------------------------------, 在指定位置附加逗号(便于阅读),注意逗号不能出现于格式字串首位,并且对于小数点的数字无效例如:SQL> select to_char(389999.00,¨99,999,999¨) from dual;TO_CHAR(389-----------389,999. 按指定格式显示小数点及小数点后位置(指定数字没有小数的话,以0补足)例如:SQL> select to_char(18,¨999.000¨) from dual;TO_CHAR(--------18.000$ 字符前附加$符例如:SQL> select to_char(18,¨$999¨) from dual;TO_CH-----$18SQL> select to_char(18,¨999$¨) from dual;TO_CH-----$180 字符头部或尾部附加0例如:SQL> select to_char(18.0,¨0999¨) from dual;TO_CH-----00189 与上类似以指定长度返回数值格式,不过如果被格式化的数值长度短于指定格式,则以空格补足。
例如:SQL> select to_char(18.0,¨9999¨) from dual;TO_CH-----18B 当整数部分是0时返回空格(即使存在0格式串也忽略)。
例如:SQL> select to_char(0.18,¨B0999¨) from dual;TO_CH-----C 返回ISO默认指定的标识(默认标识可参见:NLS_ISO_CURRENCY)例如:SQL> select to_char(128.18,¨C999999.99¨) from dual;TO_CHAR(128.18,¨C-----------------CNY128.18D 返回指定的小数点形式(默认符:.)(默认标识可参见:NLS_NUMERIC_CHARACTER)例如:SQL> select to_char(128.18,¨9999D99¨) from dual;TO_CHAR(--------128.18SQL> alter session set nls_numeric_characters=¨:"¨;会话已更改。
oracle dateformat用法
一、日期时间数据类型简介在数据库中,日期时间数据类型用于存储日期和时间信息。
Oracle数据库中有三种主要的日期时间数据类型:DATE、TIMESTAMP、和TIMESTAMP WITH TIME ZONE。
每种数据类型都有自己的特点和用途。
二、 Oracle DATE数据类型1. DATE数据类型的用途DATE数据类型被用于存储日期和时间信息。
它包含年、月、日、小时、分钟和秒的信息。
2. DATE数据类型的格式DATE数据类型的默认显示格式为"YYYY-MM-DD HH24:MI:SS",其中YYYY代表年,MM代表月,DD代表日,HH24代表小时(24小时制),MI代表分钟,SS代表秒。
3. DATE数据类型的存储容量DATE数据类型在Oracle数据库中占用7个字节的存储空间。
4. DATE数据类型的使用可以使用TO_CHAR函数将DATE数据类型转换为指定格式的字符串输出,也可以使用TO_DATE函数将字符串转换为DATE数据类型。
三、 Oracle DATE数据类型的格式化1. 日期时间格式化符号Oracle提供了一系列的日期时间格式化符号,用于指定日期时间的显示格式。
常用的格式化符号包括:- YYYY:4位年份- MM:月份(01-12)- DD:日(01-31)- HH24:小时(00-23)- MI:分钟(00-59)- SS:秒(00-59)2. 日期时间格式化示例对DATE数据类型进行格式化输出的示例:- SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;-- 输出结果类似于"2022-07-21 15:30:45"- SELECT TO_CHAR(SYSDATE, 'YYYY年MM月DD日 HH24时MI 分SS秒') FROM DUAL;-- 输出结果类似于"2022年07月21日 15时30分45秒"四、 Oracle DATE数据类型的默认格式1. NLS_DATE_FORMAT参数Oracle数据库使用NLS_DATE_FORMAT参数来控制DATE数据类型的默认显示格式。
(完整版)ORACLE命令大全
ORACLE命令大全1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORK sql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNOENAME JOB ---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESM 对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行BREAK ON break_column SKIP nSQL> BREAK ON DEPTNO SKIP 1SQL> /DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 110010. 显示对BREAK的设置SQL> BREAK11. 删除6、7的设置SQL> CLEAR BREAKS12. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 设置当前session是否对修改的数据进行自动提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句SQL> SET ECHO {ON|OFF}3).是否显示当前sql语句查询或修改的行数SQL> SET FEED[BACK] {6|n|ON|OFF}默认只有结果大于6行时才显示结果的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle之格式化查询命令
4. CLEAR选项
— 13 —
用户若是想要取消对刚才的列的显示属性的设置,则可以通过CLEAR选项清除设置的显示属性。 例如:下面的例子清除了显示属性的salary列的显示属性。
Oracle之格式化查询命令
中所有列的当前显示属性;在COLUMN后面只有列名,则显示该列的当前属性。
Oracle之格式化查询命令
格式化查询命令
• OPTION选项及其说明
选项
说明
CLEAR
清除为该列设置的显示属于,使其使用默认的显示属性
COLOR
定义列的显示颜色
HEADING
定义列的标题
FORMAT
为列指定显示格式
JUSTIFY
Oracle之格式化查询命令
格式化查询命令
—4—
• 通过使用COLUMN命令,可以控制查询结果集中列的显示格式。
• COLUMN命令的语法格式如下:
COL[UMN] [[column_name] expr |option]
其中: • COLUMN_NAME参数用于指定要控制的列的名称。 • EXPR表达式也可用于指定列的别名。 • OPTION参数用于指定某个列的显示格式。 • 在关键字COLUMN后面没有指定任何参数的话,COLUMN命令就会显示SQL*Plus环境
Oracle之格式化查询命令
格式化查询命令
—3—
• 使用这些格式化的命令时,应该遵循如下规则: • 每一次报表结束时,应该重新设置SQL*Plus为默认值; • 格式化命令设置后,将一直起作用,直到该会话结束或下一个格式化命令的
设置; • 要是为某个列指定了别名,就必须引用该列的别名,不能再使用该列名。
—8—
Oracle之格式化查询命令
2.HEADING选项
—9—
默认情况下,查询语句中的列标题是从数据库中选择相应的列的名称。通过 COLUMN命令可以为列指定一个别名,为列指定别名时需要在COLUMN命令 中使用HEADING选项。
Oracle之格式化查询命令
Hale Waihona Puke 2.HEADING选项— 10 —
例如:使用下面的命令为查询的各列指定别名,分别为:工作号、姓名和薪金。
—7—
描述
指定位置上显示逗号,可以设置多个逗号 指定位置上显示小数据点,一次只能设置一个 显示前面或后面的零 转换后字符显示的宽度 人民币符号 本地货币符号 美元符号
Oracle之格式化查询命令
1. FORMAT选项
例如:在SQL*Plus中查 询HR.EMPLOYEES表 中的Salary列,要求以 货币符号“L”开头。 则使用的COLUMN命 令如下:
Oracle之格式化查询命令
2.HEADING选项
— 11 —
若是在语句中,用户想要查看某个列的显示属性,可以通过以下命令显示特定的列的显示属性。 例如:在查询语句中,显示sal的特定属性
Oracle之格式化查询命令
3. 设置特定列的显示属性
— 12 —
在SQL*Plus语句运行中,用户还可以通过ON或OFF来设置某列的显示属性是否起到作用。 例如:下面的例子通过OFF禁用了列的显示属性。
调整列标题的对齐方式
PRIN/NOPRINT
显示/隐藏列标题
NULL
指定一个字符串,如果列的值为NULL,则由该字符串代替
ON/OFF
控制显示属性的状态,OFF表示定义的显示属性不起作用
TRUNCATED
表示截断字符串尾部
WORD_WRAPPED 表示从一个完整的字符处折叠
WRAPPED
当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下 一行显示
Oracle之格式化查询命令
格式化查询命令
—2—
• SQL*Plus提供一些命令用于格式化查询结果,这些命令执行完后,不保存到 SQL缓存中。它们一般对输出的结果进行格式化显示,也便于制作用户需要 的报表。
• 使用这些常用的格式化查询结果命令,如:COLUMN命令等,可以实现重新 设置列的标题,重新定义值的显示格式和显示宽度等。
Oracle之格式化查询命令
—5—
1. FORMAT选项
—6—
SQL*Plus允许在COLUMN命令中使用FORMAT选项规定列的显示格式。
默认情况下:
• 对于日期型和字符型数据, SQL*Plus中的列的显示宽度与定义表时指定列的宽度相 同,并且左对齐;改变显示长度可以使用FORMAT An,其中A表示格式化之后的结 果是字符型数据,n表示的是列的长度;若是指定的列的宽度比列表头小,会将其截 断处理。
• 对于数值型数据, SQL*Plus中的列显示中右对齐,它还会对数据进行四舍五入操作 以满足列的宽度的设置;如果列的设置不正确,会以“#”来代替数据显示结果。
Oracle之格式化查询命令
1. FORMAT选项
常用的格式字符串
格式元素
示例
逗号(,) 小数点(.)
0 9 ¥ L $
9999 9.999 0999或9990 9999 ¥9999 L9999 $9999