column id for 999,999 column name for a10 column age for 999
请问 “welyngj(平平淡淡)” 如何操作: 例如select id,name,age from students
这是sqlplus命令,用于格式化输出,在sqlplus中执行。 SQL>column id for 999,999 SQL>column name for a10 SQL>column age for 999
先运行上面的,然后select id,name,age from students
安装 podded(阿朱) 和 welyngj(平平淡淡)的指示操作了,运行 SQL>column id for 999,999 SQL>column name for a10 SQL>column age for 999 没有提示信息,但是 select id,name,age from students 得到的结果还是原来那样。
SQLPlus命令使用指南(一) 熟悉oracle的朋友都知道,SQL PLUS是一个重要的和ORACLE打交道的工具。SQL PLUS本身有很多命令,可以帮助我们做很多事情,包括产生一些规格化的报表、提供人机交互等等。下面,我就简单地说明一下,供大家参考: 一 帮助命令 HELP可以帮助我们,查找SQL PLUS每个命令的用法 举例: SQL> help accept ACCEPT ------ Reads a line of input and stores it in a given user variable. ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE] 二 SQLPLUS的人机交互命令 在SQLPLUS里可以接受用户的输入,最常用的命令有: (1) ACCEPT 接受整行的数据。 语法:ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format] [DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE] 举例说明: 角本1.sql,查出工资大于输入金额的雇员。 SET FEEDBACK OFF SET PAUSE OFF ACCEPT sal NUMBER PROMPT 'Please input salary(weekly): ' select employee_id,last_name,first_name,salary from employee where salary>&sal; 在SQLPLUS 中运行 SQL> @c:\1.sql Please input salary(weekly): 1000 old 2: where salary>&sal new 2: where salary> 1000 EMPLOYEE_ID LAST_NAME FIRST_NAME SALARY ----------------- ------------------- ----------------------------- ---------- 7499 ALLEN KEVIN 1600 7505 DOYLE JEAN 2850 7506 DENNIS LYNN 2750 7507 BAKER LESLIE 2200 7521 WARD CYNTHIA 1250 7555 PETERS DANIEL 1250 7557 SHAW KAREN 1250 7560 DUNCAN SARAH 1250 7564 LANGE GREGORY 1250 7566 JONES TERRY 2975 7569 ALBERTS CHRIS 3000 注: ① ACCEPT接受一行的输入,并且把输入的数据根据指定按照指定的类型存放到变量(如不存在,自动创建一个)中。 ② FOMRAT用于制定输入的数据格式,如数字可以指定’999.99’,字符可以指定长度’A10’ ③ 如果类型是CHAR,长度最大240。 (2) PROMPT 输出提示信息。 语法:PRO[MPT] [text] 举例: SQL> PROMPT Hello,world Hello,world (3) PAUSE 输出一行信息,并等待用户输入回车。 语法:PAU[SE] [text] 举例: SQL> PAUSE Please press [RETURN] Please press [RETURN] SQL> 三 编辑命令 通过SQL PLUS发送的最后一次SQL语句都会保存在SQL PLUS的一个数据缓冲区内,而SQLPLUS命令不包括在内可以通过编辑命令进行编辑。 (1) / 重新执行一下sql 语句。 (2) APPEND 在命令缓冲区内,追加字符。 举例: SQL> select * from tab; …. SQL> A WHERE tabtype='VIEW' 1* select * from tabwhere tabtype='VIEW' SQL> / TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- PLSQL_PROFILER_GRAND_TOTAL VIEW PLSQL_PROFILER_LINES_CROSS_RUN VIEW PLSQL_PROFILER_NOTEXEC_LINES VIEW PLSQL_PROFILER_UNITS_CROSS_RUN VIEW SALES VIEW (3) LIST或; 列出缓冲区内的内容,list可以列出某行的内容,而;则是所有的。 举例: SQL> ; 1 select * from tab WHERE tabtype='VIEW' 2* ORDER BY tname SQL> l 2 2* ORDER BY tname (4) INPUT 增加一行内容 举例: SQL> i ORDER BY tname SQL> l 1 select * from tab WHERE tabtype='VIEW' 2* ORDER BY tname (5) CHANGE 把当前行的第一个艘索到的内容替换新的内容, 语法:C[HANGE] sepchar old [sepchar [new[sepchar]]] 举例: SQL> l 1* select * from employee where salary>1000 and salary<2000 SQL> c/salary/sal 1* select * from employee where sal>1000 and salary<2000 注意,当缓冲区有两行的时候,用C替换的是最后一行里的内容。 (6) Edit 在指定的文本编辑器里,编辑缓冲区的内容。Windows上,缺省是NOTEPAD。 (7) SPOOL 把输出结果,指定到一个文件中,有点像DOS命令下的> SPO[OL] [file_name[.ext] | OFF | OUT] SQL> spool c:\1.txt SQL> select * from tab; SQL> spool off 四 执行命令 (1) @ 载入角本,运行。 举例: SQL>@C:\1.SQL (2) EXECUTE 运行PL/SQL过程和程序包。
个性化你的SQL*PLUS 作为一名ORACLE DBA,我们经常会使用到SQL*PLUS,其默认的启动界面不仅单调无味,而且有些 设置并不适合我们每个人的喜好。本文将告诉你如何在SQL*PLUS启动时有个个性化的设置。 SQL*PLUS启动时会读两个文件,一个是:$ORACLE_HOME/sqlplus/admin/glogin.sql;另一 个是:$ORACLE_HOME/bin/login.sql。第一个是SQL*PLUS系统的启动文件,在有的ORACLE论坛里 你也会看到很多人叫你修改这个文件,其实我的建议是系统的东西能不改尽量不改,保持系统的 原始性可以给你以后的工作减少很多麻烦,当然你很熟悉并能记住你所作的修改那就无所谓了。 而第二个文件正是给我们个性化用的,默认的时候可能没有这个SQL,自己编辑一个存档即可。以下内容添加在:$ORACLE_HOME/bin/login.sql中: REM ---------------------BEGIN------------------------------ SET HEADING OFF PROMPT 欢迎使用SQL*PLUS! SELECT '你现在以' || USER || '的身份连接到' || GLOBAL_NAME || '数据库。' FROM global_name; PROMPT 如果你不是gototop,请你立即退出本程序!! set echo off set termout off define X=NotConnected define Y=GlobalName Column username New_Value X Column dbname New_Value Y select user username,global_name dbname from global_name; SET TERMOUT ON TIME ON PAGESIZE 24 LINESIZE 100 HEADING ON SET SQLPROMPT '&X@&Y> ' REM ---------------------END-------------------------------- 以下是新的输出界面: ------------------------------------------------------------ phoenix1> sqlplus internal SQL*Plus: Release 8.1.7.0.0 - Production on Wed Oct 9 14:55:02 2002 (c) Copyright 2000 Oracle Corporation. All rights reserved. Enter password: Connected to: Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production With the Partitioning and Parallel Server options JServer Release 8.1.7.4.0 - Production 欢迎使用SQL*PLUS! 你现在以SYS的身份连接到ORA8数据库。 如果你不是gototop,请你立即退出本程序!! 14:55:08 SYS@ORA8> ------------------------------------------------------------ 当然在8.1.5之后所有的信息都可以从dual中取得,如上面的username和dbname等: Select SYS_CONTEXT('USERENV','SESSION_USER') Usr From Dual; Select SYS_CONTEXT('USERENV','DB_NAME') DBNAME From Dual;
column name for a10
column age for 999
例如select id,name,age from students
SQL>column id for 999,999
SQL>column name for a10
SQL>column age for 999
SQL>column id for 999,999
SQL>column name for a10
SQL>column age for 999
没有提示信息,但是
select id,name,age from students
得到的结果还是原来那样。
sql>set heading off
熟悉oracle的朋友都知道,SQL PLUS是一个重要的和ORACLE打交道的工具。SQL PLUS本身有很多命令,可以帮助我们做很多事情,包括产生一些规格化的报表、提供人机交互等等。下面,我就简单地说明一下,供大家参考:
一 帮助命令
HELP可以帮助我们,查找SQL PLUS每个命令的用法
举例:
SQL> help accept ACCEPT
------ Reads a line of input and stores it in a given user variable. ACC[EPT] variable [NUM[BER] | CHAR | DATE] [FOR[MAT] format]
[DEF[AULT] default] [PROMPT text | NOPR[OMPT]] [HIDE] 二 SQLPLUS的人机交互命令
在SQLPLUS里可以接受用户的输入,最常用的命令有:
(1) ACCEPT
接受整行的数据。
语法:ACC[EPT] variable [NUM[BER]|CHAR|DATE] [FOR[MAT] format]
[DEF[AULT] default] [PROMPT text|NOPR[OMPT]] [HIDE]
举例说明:
角本1.sql,查出工资大于输入金额的雇员。
SET FEEDBACK OFF
SET PAUSE OFF
ACCEPT sal NUMBER PROMPT 'Please input salary(weekly): '
select employee_id,last_name,first_name,salary from employee
where salary>&sal;
在SQLPLUS 中运行
SQL> @c:\1.sql
Please input salary(weekly): 1000
old 2: where salary>&sal
new 2: where salary> 1000 EMPLOYEE_ID LAST_NAME FIRST_NAME SALARY
----------------- ------------------- ----------------------------- ----------
7499 ALLEN KEVIN 1600
7505 DOYLE JEAN 2850
7506 DENNIS LYNN 2750
7507 BAKER LESLIE 2200
7521 WARD CYNTHIA 1250
7555 PETERS DANIEL 1250
7557 SHAW KAREN 1250
7560 DUNCAN SARAH 1250
7564 LANGE GREGORY 1250
7566 JONES TERRY 2975
7569 ALBERTS CHRIS 3000
注:
① ACCEPT接受一行的输入,并且把输入的数据根据指定按照指定的类型存放到变量(如不存在,自动创建一个)中。
② FOMRAT用于制定输入的数据格式,如数字可以指定’999.99’,字符可以指定长度’A10’
③ 如果类型是CHAR,长度最大240。 (2) PROMPT
输出提示信息。
语法:PRO[MPT] [text]
举例:
SQL> PROMPT Hello,world
Hello,world
(3) PAUSE
输出一行信息,并等待用户输入回车。
语法:PAU[SE] [text]
举例:
SQL> PAUSE Please press [RETURN]
Please press [RETURN] SQL> 三 编辑命令
通过SQL PLUS发送的最后一次SQL语句都会保存在SQL PLUS的一个数据缓冲区内,而SQLPLUS命令不包括在内可以通过编辑命令进行编辑。
(1) /
重新执行一下sql 语句。
(2) APPEND
在命令缓冲区内,追加字符。
举例:
SQL> select * from tab;
….
SQL> A WHERE tabtype='VIEW'
1* select * from tabwhere tabtype='VIEW'
SQL> / TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
PLSQL_PROFILER_GRAND_TOTAL VIEW
PLSQL_PROFILER_LINES_CROSS_RUN VIEW
PLSQL_PROFILER_NOTEXEC_LINES VIEW
PLSQL_PROFILER_UNITS_CROSS_RUN VIEW
SALES VIEW (3) LIST或;
列出缓冲区内的内容,list可以列出某行的内容,而;则是所有的。
举例:
SQL> ;
1 select * from tab WHERE tabtype='VIEW'
2* ORDER BY tname
SQL> l 2
2* ORDER BY tname
(4) INPUT
增加一行内容
举例:
SQL> i ORDER BY tname
SQL> l
1 select * from tab WHERE tabtype='VIEW'
2* ORDER BY tname
(5) CHANGE
把当前行的第一个艘索到的内容替换新的内容,
语法:C[HANGE] sepchar old [sepchar [new[sepchar]]]
举例:
SQL> l
1* select * from employee where salary>1000 and salary<2000
SQL> c/salary/sal
1* select * from employee where sal>1000 and salary<2000
注意,当缓冲区有两行的时候,用C替换的是最后一行里的内容。
(6) Edit
在指定的文本编辑器里,编辑缓冲区的内容。Windows上,缺省是NOTEPAD。
(7) SPOOL
把输出结果,指定到一个文件中,有点像DOS命令下的>
SPO[OL] [file_name[.ext] | OFF | OUT]
SQL> spool c:\1.txt
SQL> select * from tab;
SQL> spool off 四 执行命令
(1) @
载入角本,运行。
举例:
SQL>@C:\1.SQL
(2) EXECUTE
运行PL/SQL过程和程序包。
作为一名ORACLE DBA,我们经常会使用到SQL*PLUS,其默认的启动界面不仅单调无味,而且有些
设置并不适合我们每个人的喜好。本文将告诉你如何在SQL*PLUS启动时有个个性化的设置。
SQL*PLUS启动时会读两个文件,一个是:$ORACLE_HOME/sqlplus/admin/glogin.sql;另一
个是:$ORACLE_HOME/bin/login.sql。第一个是SQL*PLUS系统的启动文件,在有的ORACLE论坛里
你也会看到很多人叫你修改这个文件,其实我的建议是系统的东西能不改尽量不改,保持系统的
原始性可以给你以后的工作减少很多麻烦,当然你很熟悉并能记住你所作的修改那就无所谓了。
而第二个文件正是给我们个性化用的,默认的时候可能没有这个SQL,自己编辑一个存档即可。以下内容添加在:$ORACLE_HOME/bin/login.sql中:
REM ---------------------BEGIN------------------------------
SET HEADING OFF
PROMPT 欢迎使用SQL*PLUS!
SELECT '你现在以' || USER || '的身份连接到' || GLOBAL_NAME || '数据库。' FROM
global_name;
PROMPT 如果你不是gototop,请你立即退出本程序!!
set echo off
set termout off
define X=NotConnected
define Y=GlobalName
Column username New_Value X
Column dbname New_Value Y
select user username,global_name dbname from global_name;
SET TERMOUT ON TIME ON PAGESIZE 24 LINESIZE 100 HEADING ON
SET SQLPROMPT '&X@&Y> '
REM ---------------------END--------------------------------
以下是新的输出界面:
------------------------------------------------------------
phoenix1> sqlplus internal
SQL*Plus: Release 8.1.7.0.0 - Production on Wed Oct 9 14:55:02 2002
(c) Copyright 2000 Oracle Corporation. All rights reserved.
Enter password:
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production
With the Partitioning and Parallel Server options
JServer Release 8.1.7.4.0 - Production
欢迎使用SQL*PLUS!
你现在以SYS的身份连接到ORA8数据库。
如果你不是gototop,请你立即退出本程序!!
14:55:08 SYS@ORA8>
------------------------------------------------------------
当然在8.1.5之后所有的信息都可以从dual中取得,如上面的username和dbname等:
Select SYS_CONTEXT('USERENV','SESSION_USER') Usr From Dual;
Select SYS_CONTEXT('USERENV','DB_NAME') DBNAME From Dual;
在ORACLE_HOME\sqlplus\glogin.sql.
那个文件里定义了各种自定义格式。