使用SQLPLUS
可以用它运行SQL查询和PL/SQL代码块并接收结果信息
可以发布DBA命令并自动工作
可以启动和关闭数据库
一种创建数据库管理报告的便利方法
设置环境变量
在调用SQLplus前,必须正确设置oracle环境变量,
包括设置ORACLE_SID,ORACLE_HOME和LD_LIBBARY_PATH,有时还须设置NLS_LANG和ORA_NLS11 用CONNECT(conn)命令连接
CONNECT(conn)命令可以以一个不同的用户身份进行连接
例:
SQL> conn scott/tiger
已连接。
SQL> connect scott/tiger
已连接。
SQL*Plus登录模式
C:\>sqlplus -h
SQL*Plus: Release 10.2.0.1.0 - Production
Copyright (c) 1982, 2005, Oracle. All rights reserved.
用法1: sqlplus -H | -V
-H 显示SQL*Plus 版本和用法帮助。
-V 显示SQL*Plus 版本。
[AS SYSDBA | AS SYSOPER] | /NOLOG
指定数据库帐户用户名, 口令和数据库连接
的连接标识符。如果没有连接
标识符, SQL*Plus 将连接到默认数据库。
AS SYSDBA 和AS SYSOPER 选项是数据库管理
权限。
/NOLOG 选项可启动SQL*Plus 而不连接到
数据库。
使用将分配给脚本中的替代变量的指定参数
从Web 服务器(URL) 或本地文件系统(filename.ext)
运行指定的SQL*Plus 脚本。
在启动SQL*Plus 并且执行CONNECT 命令后, 将运行站点概要
文件(例如, $ORACLE_HOME/sqlplus/admin/glogin.sql) 和用户概要文件
(例如, 工作目录中的login.sql)。这些文件
可包含SQL*Plus 命令。
SQLPLUS的执行操作
一条SQL语句由一个分号(;)或一个反斜杠(/)结束
一个PL/SQL块由一个反斜杠(/)结束
可以使用连字符(-)作为语句行的继续字符
例:
SQL> select 200 - <==此时sqlplus自动将'-'字符解释成继续字符并发布一条错误信息
> 100 from dual;
select 200 100 from dual
*
第 1 行出现错误:
ORA-00923: 未找到要求的FROM 关键字
SQL> select 200 - -
> 100 from dual;
200-100
----------
100
退出SQLPlus
在SQL*Plus输入exit(quit)命令正常退出会话,则事务立即被提交.如果不打算提交事务,必须在退出前执行rollback命令,就算autocommit设置值为off也是如此.在使用exit/quit时,会出现以下情况
?所有未决的更改被回滚或提交;
?用户退出oraclesqlplus会话终止
?控制权返回到操作系统
SQLPLUS基本类型命令
SQLPLUS可以与oracle数据库进行交互.使用两种基本类型的命令.
本地命令:这些命令在sqlplus本地执行,不发送给服务器.
如:COPY,COMPUTE,REM和SET LINESIZE
这些命令不需要使用命令结束符
服务器命令:不在slqplus本地执行,而是通过服务器进行处理
如:CREATE TABLE和INSERT的SQL命令,以及包括BEGIN和END语句之间的PL/SQL块
这些命令需要一个分号(;)或一个反斜杠(/)结束
SET设置sqlplus环境变量
SQL> help index <==可以查看sqlplus下常用命令
set是最基本的命令之一可以使用help set来查看可以用SET命令控制的整个环境变量的集合. SQL> help set
SET
---
Sets a system variable to alter the SQL*Plus environment settings
for your current session. For example, to:
- set the display width for data
- customize HTML formatting
- enable or disable printing of column headings
- set the number of lines per page
In iSQL*Plus, you can also use the Preferences screen to set
system variables.
SET system_variable value
where system_variable and value represent one of the following clauses:
APPI[NFO]{OFF|ON|text} NUM[WIDTH] {10|n}
ARRAY[SIZE] {15|n} PAGES[IZE] {14|n}
AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n} PAU[SE] {OFF|ON|text}
AUTOP[RINT] {OFF|ON} RECSEP {WR[APPED]|EA[CH]|OFF}
AUTORECOVERY {OFF|ON} RECSEPCHAR {_|c}
AUTOT[RACE] {OFF|ON|TRACE[ONLY]} SERVEROUT[PUT] {ON|OFF}
[EXP[LAIN]] [STAT[ISTICS]] [SIZE {n | UNLIMITED}] [FOR[MAT]
BLO[CKTERMINATOR] {.|c|ON|OFF} {WRA[PPED] |
CMDS[EP] {;|c|OFF|ON} WOR[D_WRAPPED] |
COLSEP {_|text} TRU[NCATED]}]
CON[CAT] {.|c|ON|OFF} *SHIFT[INOUT] {VIS[IBLE] |
COPYC[OMMIT] {0|n} INV[ISIBLE]}
COPYTYPECHECK {ON|OFF} *SHOW[MODE] {OFF|ON}
DEF[INE] {&|c|ON|OFF} *SQLBL[ANKLINES] {OFF|ON}
DESCRIBE [DEPTH {1|n|ALL}] SQLC[ASE] {MIX[ED] |
[LINENUM {OFF|ON}] [INDENT {OFF|ON}] LO[WER] | UP[PER]}
ECHO {OFF|ON} *SQLCO[NTINUE] {> | text}
*EDITF[ILE] file_name[.ext] *SQLN[UMBER] {ON|OFF}
EMB[EDDED] {OFF|ON} SQLPLUSCOMPAT[IBILITY] {x.y[.z]} ESC[APE] {\|c|OFF|ON} *SQLPRE[FIX] {#|c}
FEED[BACK] {6|n|ON|OFF} *SQLP[ROMPT] {SQL>|text}
FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL} SQLT[ERMINATOR] {;|c|ON|OFF}
*FLU[SH] {ON|OFF} *SUF[FIX] {SQL|text}
HEA[DING] {ON|OFF} *TAB {ON|OFF}
HEADS[EP] {||c|ON|OFF} *TERM[OUT] {ON|OFF}
INSTANCE [instance_path|LOCAL] *TI[ME] {OFF|ON}
LIN[ESIZE] {80|n} ({150|n} iSQL*Plus) TIMI[NG] {OFF|ON}
LOBOF[FSET] {1|n} *TRIM[OUT] {ON|OFF}
LOGSOURCE [pathname] *TRIMS[POOL] {OFF|ON}
LONG {80|n} UND[ERLINE] {-|c|ON|OFF}
LONGC[HUNKSIZE] {80|n} VER[IFY] {ON|OFF}
MARK[UP] HTML [OFF|ON] WRA[P] {ON|OFF}
[HEAD text] [BODY text] [TABLE text] XQUERY {BASEURI text|
[ENTMAP {ON|OFF}] ORDERING{UNORDERED|
[SPOOL {OFF|ON}] ORDERED|DEFAULT}| [PRE[FORMAT] {OFF|ON}] NODE{BYVALUE|BYREFERENCE| NEWP[AGE] {1|n|NONE} DEFAULT}|
NULL text CONTEXT text}
NUMF[ORMAT] format
An asterisk (*) indicates the SET option is not supported in iSQL*Plus.
常用SQLPLUS环境变量--set serveroutput (1)
set serveroutput [ON/OFF]
set serveroutput命令,确定PL/SQL代码段或存储过程的输出是否显示屏幕上
SQL> show serverout <==查看serveroutput默认变量值serveroutput OFF <==显示为OFF
SQL> begin
2 dbms_output.put_line('Hello,everyone!');
3 end;
4 /
<==没有显示输出结果
PL/SQL 过程已成功完成。
SQL> set serveroutput on <==更改默认值为on
SQL> show serverout
serveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPED
SQL> begin
2 dbms_output.put_line('Hello,everyone!');
3 end;
4 /
Hello,everyone! <==显示输出
PL/SQL 过程已成功完成。
常用SQLPLUS环境变量--set serveroutput (2)format子句
format word_wrapped选项限制每行的长度为linesize变量指定的值,如果一个词超过了行长,则此行在该词前终止
set serveroutput on format word_wrapped
set linesize 20
begin
dbms_output.put_line('after the first 20 charachters pleasa');
dbms_output.put_line('continue on the second line');
end;
/
after the first 20
charachters pleasa
continue on the
second line
PL/SQL 过程已成功完成。
format truncated格式化选项时,显示输出的每行都精确地截断在linesize变量所指定的长度上.
set serveroutput on format truncated
set linesize 20
begin
dbms_output.put_line('after the first 20 charachters pleasa');
dbms_output.put_line('continue on the second line');
end;
/
after the first 20 c
continue on the seco
PL/SQL 过程已成功完成。
用glogin.sql文件指定全局环境变量
glogin.sql站点概要文件(site profile file)可以设置sqlplus指定的变量默认值.可以使用glogi.sql文件给所有用户相同的环境设置
glogin.sql文件适用于系统的所有用户.
glogin.sql存放在$ORACLE_HOME/sqlplus/admin目录下,每次sqlplus登录时oralce都会读取此文件.
如: set linesize 150
set serveroutput on
set pages 100
把这3个环境变量写入glogin.sql文件中,以后每次登录sqlplus时此三个环境变量都以glogin.sql中设置为准.
用login.sql文件指定个别用户环境变量收选项
login.sql文件是由oracle控制的另一个文件,可以设置用户自己定制的sqlplus环境,称为用户概要文件(user profile file).login.sql命令在连接sqlplus时自动执行
login.sql与glogin.sql顺序
当slqplus连接时,先执行glogin.sql然后执行login.sql在login.sql中指定的变量值覆盖glogin.sql指定的变量值也就是login.sql优先级比glogin.sql高
login.sql只适合个别用户会话,它在glogin.sql运行后自动运行
但怎么使用的实验没搞明白
STORE/START
保存当前环境变量
SQL> store set mysqlplus.sql
已创建file mysqlplus.sql
复原所有环境变量
SQL> start mysqlplus.sql
store有三个选项:create创建,replace替换,append给已有文件添加命令
SHOW命令
SHOW:可以使用show命令显示变量值.为了查找特定的变量值,可以在命令后输入特定的变量名.
如:
show user
show sga
show parameter
SQLPROMPT命令
sqlprompt命令可以将环境设置为用实例名称作为提示符的习惯,以便提醒当前会话所处的位置. SQL> set sqlprompt '_connect_identifier>'
orcl> <==表示当前使用的数据库名,本例的数据库名为orcl
connect_identifier为预定义变量
user
也可以将提示符显示为用户名称,当设置此变量后,当切换任意用户时,提示符也相应切换为当前连接的用户名
orcl>set sqlprompt '_user>'
SYS>conn scott/tiger
已连接。
SCOTT>conn erm/erm
已连接。
ERM>
set sqlprompt ''_user'@'_connect_identifier >'' <==userid@instance
DESCRIBE命令
describe(desc)命令查看表的结构,描述oracle的程序包或过程
SCOTT>desc emp;
名称是否为空? 类型
----------------------- -------- --------------
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
HOST命令
windows下使用host从sqlplus中切换到操作系统
linux下使用host/!都可以从slqplus中切换到操作系统
SPOOL命令
SPOOL命令可以将一条或多条sql语句的输出结果保存到UNIX和windows的操作系统文件中
SCOTT>spool d:\spool.lst
SCOTT>set line 130
SCOTT>select * from emp;
SCOTT>select * from tab;
SCOTT>spool off; <==会把以上sql语句的输出结果都保存在d:\spool.lst这个文件里EXECUTE命令
EXECUTE(exec)命令调用程序包或过程
例:
SQL> create procedure update_sal(
2 name varchar2,newsal number)
3 is
4 begin
5 update emp set sal=newsal
6 where lower(ename)=lower(name);
7 end;
SQL> /
过程已创建。
调用过程
SQL> exec update_sal('scott',2000)
PL/SQL 过程已成功完成。
PAUSE命令
PAUSE命令可以在输出信息满一屏后暂停显示,然后按enter(回车)键可看到下一屏的显示信息.当设置ON 后运行查询时,需要按enter键才能浏览到第一屏输出信息
show pause
PAUSE为OFF
set pause on
show pause
PAUSE 为ON 并设为" "
COLUMN命令
COLUMN(col)命令格式表中列长短
例:
col ename for a15
将SQL缓冲区内容保存到文件中SAVE
SAVE命令可以保存SQL缓冲区的内容到文件中
SYS>select username,process,sid,serial# from v$session where status='ACTIVE'
2 .
SYS>SAVE STATUS.SQL
已创建file STATUS.SQL
如果已存在覆盖使用replace如果追加到文件最后一行使用append
SYS>select username,process,sid,serial# from v$session where status='ACTIVE'
2 .
SYS>save status.sql
SP2-0540: 文件"status.sql" 已经存在。
使用"SAVE filename[.ext] REPLACE"。
SYS>save status.sql replace
已写入file status.sql
SYS>save status.sql append
已将file 附加到status.sql
预定义SQLPLUS变量
SYS>define <==使用define查看预定义的sqlplus环境变量
DEFINE _DATE = "03-1月-11" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "Notepad" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)
DEFINE _RC = "-1" (CHAR)
oracle常用命令及格式 一:关于日志管理的 1.切换日志:sql> alter system switch logfile; 2.切换checkpoints:sql> alter system checkpoint; 3.增加日志组:sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/disk4/log4b.rdo') size1m; 4.增加日志成员 sql> alter database add logfile member sql> '/disk3/log1b.rdo' to group 1, sql> '/disk4/log2b.rdo' to group 2; 5.改变日志文件名字或路径 sql> alter database rename file 'c:/oracle/oradata/oradb/re do01.log' sql> to 'c:/oracle/oradata/redo01.log'; (此处注意,那个文件路径的输入格式) 6.删除日志文件组:sql> alter database drop logfile group 3;
7.删除日志文件成员 sql> alter database drop logfile member 'c:/oracle/oradata/ redo01.log'; 8.清除日志文件内容 sql> alter database clear [unarchived] logfile 'c:/oracle/l og2a.rdo'; 二、关于表空间管理的 1.创建表空间 sql> create tablespace tablespace_name datafile 'c:\oracle\ oradata\file1.dbf' size100m, sql> 'c:\oracle\oradata\file2.dbf' size100mminimum extent 5 50k [logging/nologging] sql> default storage (initial 500k next 500k maxextents 500 pctinccease 0) sql> [online/offline] [permanent/temporary] [extent_managem ent_clause]
Oracle SQLPlus 常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。
Oracle的历史 ?Oracle 公司( 甲骨文) 创始人: Larry Ellison 32岁,公司提供数据库服务. ?公司成立于1977 年, 83 年公司更名为Oracle ,原名为”软件开发实验室”. ?Oracle 数据库适用于大型企业 ?竞争对手 –微软的SQLServer –IBM 的DB2 ?目前的版本 – 2.0~7.0 , 8.0 , 8i , 9i , 10g Oracle的服务: 我的电脑右键选择管理--服务和应用程序—服务
或 sqlplus 用户名@orcl 如果用户是管理员要在sqlplus 用户名/密码@主机字符串as sysdba “/”是用户名和密码分隔符号 “@”是密码和数据库的分隔符号 “orcl”是数据库的名称,在安装时指定 常用命令(互动) connect 切换用户 show user 显示当前用户 set linesize 1000 设置行显示长度 set pagesize 1000 设置分页长度 desc dept 查看表结构 select table_name from user_tables 查询当前用户的表 / 运行上一条SQL语句 clear screen 清除屏幕 edit 编辑 spool d:/a 保存输出结果到某个位置 spool off 保存结束 quit 退出 list 查看最后一条语句 @ 文件名.sql 运行外部文件中的SQL语句
oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;
SQL*PLUS命令的使用大全[zt] Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中,可以运行sql*plus命令与sql*plus语句。 我们通常所说的DML、DDL、DCL语句都是sql*plus语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存在sql buffer中的sql 语句进行修改,然后再次执行,sql*plus一般都与数据库打交道。 除了sql*plus语句,在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后,不保存在sql buffer的内存区域中,它们一般用来对输出的结果进行格式化显示,以便于制作报表。 下面就介绍一下一些常用的sql*plus命令: 1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 2. 对当前的输入进行编辑 SQL>edit 3. 重新运行上一次运行的sql语句 SQL>/ 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 6.显示一个表的结构 SQL> desc table_name 7. COL命令: 主要格式化列的显示形式。 该命令有许多选项,具体如下: COL[UMN] [{ column|expr} [ option ...]] Option选项可以是如下的子句: ALI[AS] alias CLE[AR] FOLD_A[FTER] FOLD_B[EFORE] FOR[MA T] format HEA[DING] text JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} LIKE { expr|alias} NEWL[INE] NEW_V[ALUE] variable NOPRI[NT]|PRI[NT] NUL[L] text OLD_V[ALUE] variable ON|OFF WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] 1). 改变缺省的列标题
Oracle 命令大全 底部为环境变量配置路径。 1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将SCOTT帐号解锁(加锁) alter user scott account unlock(lock); 10 以SCOTT的身份连接并且查看所属表 connect scott/tiger select * from tab; 11 查看EMP的表结构及记录内容 desc emp select empno,ename from emp; 12 以OS的身份登看SGA,共享池,CACHE的信息 connect / as sysdba show sga select name,value/1024/1024 from v$sga; show parameter shared_pool_size select value/1024/1024 from v$parameter where name ='shared_pool_size';
show parameter db_cache_size select value/1024/1024 from v$parameter where name ='db_cache_size'; 13 查看所有含有SIZE的信息 show parameter size bitmap_merge_area_size integer 1048576 create_bitmap_area_size integer 8388608 db_16k_cache_size big integer 0 db_2k_cache_size big integer 0 db_32k_cache_size big integer 0 db_4k_cache_size big integer 0 db_8k_cache_size big integer 0 db_block_size integer 4096 db_cache_size big integer 33554432 db_keep_cache_size big integer 0 db_recycle_cache_size big integer 0 NAME TYPE V ALUE ------------------------------------ ----------- ------------- global_context_pool_size string hash_area_size integer 1048576 java_max_sessionspace_size integer 0 java_pool_size big integer 33554432 large_pool_size big integer 8388608 max_dump_file_size string UNLIMITED object_cache_max_size_percent integer 10 object_cache_optimal_size integer 102400 olap_page_pool_size integer 33554432 oracle_trace_collection_size integer 5242880 parallel_execution_message_size integer 2148 NAME TYPE V ALUE ------------------------------------ ----------- ------------- sga_max_size big integer 143727516 shared_pool_reserved_size big integer 2516582 shared_pool_size big integer 50331648 sort_area_retained_size integer 0 sort_area_size integer 524288 workarea_size_policy string AUTO 14 显示SGA的信息 select * from v$sgastat; POOL NAME BYTES
oracle查询语句大全--基本命令大全一 1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.doczj.com/doc/0e9045822.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) V ALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) V ALUES (2, \'2\'); end;"; 7.查询用户下的表的信息select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum
1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username; 3.connect username/password//进入。 4.select table_name,column_name from user_tab_columns where table_name='mview_log';//查询表中的表名,字段名等等。 5. 如何执行脚本SQL文件? SQL>@PATH/filename.sql; 6.Oracle oledb 提供者在command中执行多条SQL语句与SQL SERVER有少许差别,SQL Server 只需使用";"分割多条SQL语句,而Oracle需要遵守ORACLE调用规范,即除分号分割外,还需以begin /end;包围语句体. 使用C#描述应如下所示: https://www.doczj.com/doc/0e9045822.html,mandText = "begin INSERT INTO GROUP_INFO (GROUP_ID, GROUP_NAME) VALUES (1, \'2\'); INSERT INTO GROUP_INFO(GROUP_ID, GROUP_NAME) VALUES (2, \'2\'); end;"; 7.查询用户下的所有表 select distinct table_name from user_tab_columns; 8.如何搜索出前N条记录?Select a.*,rownum from (select * from cardkind order by cardkind ) a where rownum
1.进入sql界面: 开始--运行--cmd:输入sqlplus 回车提示输入正确的用户名和密码 注意:用户名默认的是sys,system,密码是你安装的密码,输入正确的用户名及密码即可进入界面。 2.DOS命令下修改密码 当忘记密码时,DOS命令下 alter user system identified by 新密码; 例:修改系统密码为root alter user system identified by root; 3.切换用户操作 先退出再登录,exit退出 Sqlplus --提示输入用户名新用户名 --提示输入密码对应密码 或 不退出,直接sql操作中conn/用户名/密码切换用户 例:conn system/root 注意:登录的时候没有分号结束。 4.简单入门命令 select * from tabs;---查询当前用户下有哪些表(多查询出系统表); select table_name from user_tables; ---查询当前用户下的所有表的名称。 desc 表名---查看表有哪些列(表的结构) 5.创建用户命令
连接到用户SQL> conn system/root 创建用户: SQL> create user scott(用户名) identified by tiger(密码); 切换用户:SQL> conn scott/tiger //用户切换失败 Not logged on 备注:出现用户没有session权限的提示. 所以应当分配session权限 6.分配权限 grant 权限名to 用户名; SQL> conn system/root;//第一步切换到管理员 SQL> grant create session to scott; //为用户受权 Grant succeeded//受权成功 备注:当受权成功后,scott就可以登录,但是登录后,当用户创建表时,也会出现权限不足.然在oracle中是通过用户的角色来给用户分配权限的.详细参考9角色 7. 角色(一个角色包含多个权限) connect create session create table …… resource 对表空间使用权限 …… grant connect,resource to scott; 注意:对用用户的创建,权限的分配,只有管理员才能够操作,普通用户不能实现.
1 运行SQLPLUS工具 sqlplus 2 以OS的默认身份连接 / as sysdba 3 显示当前用户名 show user 4 直接进入SQLPLUS命令提示符 sqlplus /nolog 5 在命令提示符以OS身份连接 connect / as sysdba 6 以SYSTEM的身份连接 connect system/xxxxxxx@服务名 7 显示当然用户有哪些表 select * from tab; 8 显示有用户名和帐户的状态 select username,account_status from dba_users; 9 将SCOTT帐号解锁(加锁) alter user scott account unlock(lock); 10 以SCOTT的身份连接并且查看所属表 connect scott/tiger select * from tab; 11 查看EMP的表结构及记录内容 desc emp select empno,ename from emp; 12 以OS的身份登看SGA,共享池,CACHE的信息 connect / as sysdba show sga select name,value/1024/1024 from v$sga; show parameter shared_pool_size select value/1024/1024 from v$parameter where name ='shared_pool_size'; show parameter db_cache_size select value/1024/1024 from v$parameter where name ='db_cache_size';
Oracle常用命令大全(很有用,做笔记) 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit b、关闭ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>shutdown SVRMGR>quit 启动oracle9i数据库命令: $ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. SQL> connect / as sysdba Connected to an idle instance. SQL> startup^C SQL> startup ORACLE instance started. 2、在双机环境下 要想启动或关闭ORACLE系统必须首先切换到root用户,如下 su - root a、启动ORACLE系统 hareg -y oracle b、关闭ORACLE系统 hareg -n oracle Oracle数据库有哪几种启动方式
说明: 有以下几种启动方式: 1、startup nomount 非安装启动,这种方式启动下可执行:重建控制文件、重建数据库 读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, 重新定位数据文件、重做日志文件。 执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置, 但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令 startup nomount alter database mount alter database open 5、startup restrict 约束方式启动 这种方式能够启动数据库,但只允许具有一定特权的用户访问 非特权用户访问时,会出现以下提示: ERROR: ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用 6、startup force 强制启动方式 当不能关闭数据库时,可以用startup force来完成数据库的关闭
Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句(DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒 或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC. 年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS INSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型, 方法借用ORACLE里自带的DBMS_LOB程序包. INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号 CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2.DELETE (删除数据表里记录的语句) DELETE FROM表名WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCATE TABLE 表名; 此操作不可回退. 3.UPDATE (修改数据表里记录的语句) UPDATE表名SET 字段名1=值1, 字段名2=值2, …… WHERE 条件; 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N超过定义的长度会出错, 最好在插入前进行长度校验.. 注意事项: A. 以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效, 否则改变不一定写入数据库里. 如果想撤回这些操作, 可以用命令ROLLBACK 复原.
oracle常用名词解析 l数据库块(BLOCK) ORACLE数据库中的最小存储和处理单位,包含块本身的头信息数据或PL/SQL代码。 ORACLE块的大小是可以在安装时选择“自定义安装”来指定,也可以在CREATE DATABASE创建数据库实例时指定。其最小为2K,最大可达为64K。 l瓶颈(Bottleneck) 指限制系统性能的部件。 l面向对象的关系数据库 具有关系数据库的全部功能,同时又支持面向对象的数据库,称作面向对象关系数据库系统。Oracle7是一种功能完备的关系数据库系统;oracle8是一种面向对象的关系数据库系统。 l客户/服务器结构(Client/Server) 有客户机、服务器、网络三要素的结构,客户机(PC机)通过网络与服务器相连和工作。 l胖客户机(Fat Client) 一般的Client/Server结构中的客户机均为胖客户机。因为这些客户机需要配置较高的设备,如内存、硬盘、主频、CD_ROM等。 l瘦客户机(Thin Client) 也称作NC(网络计算机),是一种内存配置小(过去指一般只有4M,现无法定义),无硬盘,只有处理心片的处理机。 l数据在线分析处理(OLAP) 是一种能以快速、交互、方便的方式洞察数据情况的技术。如Oracle Express,Cognos(加拿大)的Power Play,Business Objects公司的Business Object等。 l多线程(MTS) 一个用户可以同时运行多个程序对数据库进行访问,比如Visual C/C++可以提供同时启动多个进程,而Visual Basic则不能。 l数据仓库(Data Warehouse) 支持大量数据信息存储的叫做支持数据仓储或数据仓库。当把几个小型数据库集成为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供决策支持,提供数据汇总,提供只读数据,并且实质上充当所有向它提供数据的相关成品数据库的数据接收器,那么它通常被叫做数据仓库。 l实例(Instance) 是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程。 l对象(Objects) 是实现世界实体的软件表示,如表、索引、视图、同义词、过程等。 l数据库文件(Datafile) Oracle系统中用于存放数据(应用系统数据)的文件。(<
Oracle备份常用命令 Oracle也是常用的数据库之一,备份起来的话有时候是否感到棘手?保存好以下信息,相信能助你一臂之力。 一.常用的备份命令 1.list backup;列出数据库中所有的备份信息。 2.list backup of controlfile;列出所有备份的控制文件。 3.list backup of datafile ' 或者list backup of datafile 对应数据文件的ID号。数据文件全路径.dbf';列出指定的备份的数据文件。 4.list backup of archivelog all;列出所有备份的归档文件。 5.list copy of tablespace '表空间名';列出指定表空间的备份信息。 6.list expired backup;列出无效备份。 7.delete obsolete;删除过期备份。 8.delete expired backup;删除无效备份。 9.delete expired copy;删除expired副本。 10.delete backupset 备份集编号;删除指定备份集。 11.delete backup;删除所有备份集。
12.delete copy;删除所有映像副本。 13.report need backup;查看所需要的备份文件 14.report need backup tablespace 表空间名;查看指定表空间是否需要备份。 15.crosscheck archivelog all;检查归档文件是否有效 16.crosscheck backup;检查所有备份集。 RMAN相关的 list backup of database(查看数据库的全库备份,全部细节都包括) list backup of tablespace users (查看users表空间的备份) list backup of datafile 5;(5是表空间对应的文件id) list backup of controlfile(看出控制文信息的备份) list backup of datafile '+DATADG/cboms/datafile/users.264.735423243';(根据具体的数据文 件的具体位置,查看备份) list expired backup;(无效的备份) list expired archivelog all;(查看无效的archive log 日志)
Oracle数据库语句大全 一.入门部分 1.创建表空间 create tablespace schooltbs datafile ‘D:\oracle\datasource\schooltbs.dbf’ size 10M autoextend on; 2.删除表空间 drop tablespace schooltbs[including contents and datafiles]; 3.查询表空间基本信息 select *||tablespace_name from DBA_TABLESPACES; 4.创建用户 create user lihua identified by lihua default tablespace schooltbs temporary tablespace temp; 5.更改用户 alter user lihua identified by 123 default tablespace users; 6.锁定用户 alter user lihua account lock|unlock; 7.删除用户 drop user lihua cascade;--删除用户模式 8.oracle数据库中的角色 connect,dba,select_catalog_role,delete_catalog_role,execute_catalo g_role,exp_full_database,imp_full_database,resource 9.授予连接服务器的角色 grant connect to lihua; 10.授予使用表空间的角色 grant resource to lihua with grant option;--该用户也有授权的权限 11.授予操作表的权限 grant select,insert on user_tbl to scott;--当前用户 grant delete,update on https://www.doczj.com/doc/0e9045822.html,er_tbl to scott;--系统管理员 二.SQL查询和SQL函数 1.SQl支持的命令: 数据定义语言(DDL):create,alter,drop 数据操纵语言(DML):insert,delete,update,select 数据控制语言(DCL):grant,revoke 事务控制语言(TCL):commit,savepoint,rollback 2.Oracle数据类型 字符,数值,日期,RAW,LOB 字符型 char:1-2000字节的定长字符
tail -f catalina.out 看日志 ps -ef|grep java 看进程 rm -rf zhijian 删除zhijian文件夹 control(275590805) 16:11:41 control_net@https://www.doczj.com/doc/0e9045822.html, 275590806s 试试我的 超级用户:root 111111 Oracle用户:oracle oracle 数据库实例:edu 数据库用户:sysdba sysdab 创建表空间:create tablespace cpde_data datafile '/opt/app/oracle/wdcms1.dbf' size 500m autoextend on next 100m maxsize unlimited; 创建用户:create user meige2 identified by meige2 default tablespace cpde_data; 给用户分配权限:grant connect,resource,dba to meige1; 1. linux下启动oracle su - oracle sqlplus /nolog conn /as sysdba startup exit lsnrctl start exit 2. linux下关闭oracle su - oracle sqlplus /nolog conn /as sysdba shutdown immediate exit lsnrctl stop exit 3、启动监听器 oracle@suse92:~> lsnrctl start
4、停止监听器 oracle@suse92:~> lsnrctl stop 5、查看监听器状态 oracle@suse92:~> lsnrctl LSNRCTL> status LSNRCTL> exit 1、创建表空间: 写执行脚本create_tablespace.sql create tablespace accounting_tbs datafile '/opt/ora9/oradata/KLTest/accounting_tbs.dbf' size 50M extent management local; 以sys用户权限登陆数据库执行脚本: Sql>@create_tablespace.sql 2、创建oracle用户: 写执行脚本create_user.sql create user klwy identified by “0000” default tablespace accounting_tbs quota 100M on accounting_tbs quota 500K on indx; 3、分配用户权限: 为用户授予create session系统权限: Sql>grant create session to klwy; 为用户授予connect角色:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST file=d:\daochu.dmp full=y 2 将数据库中system用户与sys用户的表导出 exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys) 3 将数据库中的表inner_notify、notify_staff_relat导出 exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出 exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\" 上面是常用的导出,对于压缩 ,既用winzip把dmp文件可以很好的压缩。 也可以在上面命令后面加上compress=y 来实现。 数据的导入: 1 将D:\daochu.dmp 中的数据导入TEST数据库中。 imp system/manager@TEST file=d:\daochu.dmp imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y 上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。 在后面加上ignore=y 就可以了。 2 将d:\daochu.dmp中的表table1 导入 imp system/manager@TEST file=d:\daochu.dmp tables=(table1) 基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。注意: 操作者要有足够的权限,权限不够它会提示。 数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。 附录一: 给用户增加导入数据权限的操作 第一,启动sql*puls 第二,以system/manager登陆 第三,create user 用户名IDENTIFIED BY 密码(如果已经创建过用户,这步可以省略) 第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW , DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE, DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字 第五, 运行-cmd-进入dmp文件所在的目录, imp userid=system/manager full=y file=*.dmp 或者imp userid=system/manager full=y file=filename.dmp 执行示例: F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notify.dmp 屏幕显示 Import: Release 8.1.7.0.0 - Production on 星期四2月16 16:50:05 2006 (c) Copyright 2000 Oracle Corporation. All rights reserved. 连接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production