Freelists和Freelist Groups
EM重建的步骤
6.点击小手电筒图标,输入用户名、密码(oracle、oracle),在文件名或目录名中输入“/oradata”,在目录众搜索输入“/”,点击“开始go”,找到后点击“选择select”。
7.输入名字,比如testtb1.dbf,选择大小,可以选择“自动扩展”,但是最好不要用这个功能,如果空间不够之后,最好手动增加。
Storage Type如果选择ASM,只需在DiskGroup中选择“DATA”,选择大小即可。
8.选择“Show SQL”,查看刚才建立的表空间对应的SQL。
CREATE SMALLFILE TABLESPACE “TESTTB1”DATAFILE ‘+DATA’ SIZE 100MAUTOEXTEND ON NEXT 100MMAXSIZE UNLIMITEDLOGGINGEXTENT MANAGEMENT LOCAL UNIFORM SIZE 1MSEGMENT SPACE MANAGEMAENT AUTO;给表空间加数据文件:1.选中刚才建立的表空间“TESTTB1”,在上方下拉列表中选择“添加数据文件Add Datafile”2.输入大小,选择“自动扩展”,及每次扩展的大小。
选择show SQL,查看操作。
然后选择“return”,选择“OK”。
ALTER TABLESPACE “TESTTB1”ADD DATAFILE ‘+DATA’ SIZE 200MAUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED在表空间上建表:1.在主页中选择“Schema方案”,选择“表”2.输入“sys”用户,选择“创建”3.选择“标准”,“Continue继续”4.输入名字“tab1”,选择表空间5.在下方设置字段、数据类型、大小等,show SQLCREATE TABLE “SYS”。
“TAB1”(“ID” NUMBER(10) NOT NULL , “NAME” VARCHAR(20))TABLESPACE “TESTTB1”PCTFREE 20查看这个表占多少extent:select * from dba_extent a where a.segment_name=’TAB1’记录着区的编号,FILE_ID,BLOCK_ID也就是从那个块开始,BLOCKS共分配了多少个块。
表空间(TableSpace)
表空间(TableSpace)我们知道Oracle数据库真正存放数据的是数据⽂件(Data File),oracle表空间(tablespace)实际上是⼀个逻辑的概念,在物理上是并不存在的,那么把⼀组data files捻在⼀起就成为⼀个表空间。
表空间属性:⼀个数据库可以包含多个表空间,⼀个表空间只能属于⼀个数据库⼀个表空间包含多个数据⽂件,⼀个数据⽂件只能属于⼀个表空间表空间可以划分成更细的逻辑存储单元:Oracle数据库的存储空间结构:从逻辑的⾓度来看,⼀个数据库(database)下⾯可以分多个表空间(tablespace);⼀个表空间下⾯有可以分多个段(segment);⼀个数据表要占⼀个段(segment),⼀个索引也要占⼀个段(segment)。
⼀个段(segment)由多个区间(extent)组成,那么⼀个区间⼜由⼀组连续的数据块(data block)组成,这连续的数据块是在逻辑上是连续的,有可能是物理逻辑上是分散那么从物理的⾓度上看,⼀个表空间由多个数据⽂件组成,数据⽂件是实实在在存在的磁盘⽂件,这些⽂件是由oracle数据库操作系统的block组成的Segment(段):段是指占⽤数据⽂件空间的通称,或数据库对象使⽤的空间的稽核;段可以由表段、索引段、回滚段、临时段、和⾼速缓存段等。
Extent(区间):分配给对象的任何连续块就叫区间;区间也叫扩展,因为当它⽤完已经分配的区间后,再有新的记录插⼊就必须在分配新的区间(即扩展⼀些块);⼀旦区间分配某个对象(表,索引或簇),则该区间就不能再分配给其它的对象1,查看表空间的名称及⼤⼩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_name2、查看表空间物理⽂件的名称及⼤⼩select tablespace_name,file_id,file_name,round(bytes / (1024*1024), 0) total_spacefrom dba_data_filesorder by tablespace_name;select tablespace_name,file_id,file_name,round(bytes / (1024*1024), 0) total_spacefrom dba_temp_filesorder by tablespace_name;3、查看表空间的使⽤情况select sum(bytes) / (1024 * 1024) as free_space, tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT * from DBA_TEMP_FREE_SPACE;SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间⼤⼩(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使⽤空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使⽤⽐",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最⼤块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 4 DESC;4、查看/修改Database的Default Temporary TablespaceSELECT PROPERTY_NAME, PROPERTY_VALUEFROM DATABASE_PROPERTIESWHEREPROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;5,--查看表空间是否具有⾃动扩展的能⼒SELECT T.TABLESPACE_NAME,D.FILE_NAMED.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUSFROM DBA_TABLESPACES T, DBA_DATA_FILES DWHERE T.TABLESPACE_NAME = D.TABLESPACE_NAMEORDER BY TABLESPACE_NAME, FILE_NAME;当数据库刚建⽴起来,系统会建⽴⼀个叫做SYSTEM的系统的TableSpace,存放SYS,SYSTEM等User重要的系统数据(ex:数据字典与预存储程序等)建⽴oracle User时,不指定预设的TableSpace,则此User则会以System TableSpace 作为预设的TableSpace,这造成管理上的混乱与严重的效能问题,这是必须注意的TableSpace的类型:Permanent、Undo、TemporaryPermanent TableSpace:创建给AP使⽤的都是。
oracle备份控制文件
如何备份控制文件∙1、∙ALTER DATABASE BACKUP CONTROLFILE TO TRACE;∙ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;∙ALTER DATABASE BACKUP CONTROLFILE TO TRACE NORESETLOGS;∙∙2、∙ALTER DATABASE BACKUP CONTROLFILE TO 文件名;∙ALTER DATABASE BACKUP CONTROLFILE TO 文件名 REUSE;(如果此文件已存在)∙∙例:∙SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a';∙∙数据库已更改。
∙∙SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a';∙ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a'∙*∙ERROR 位于第 1 行:∙ORA-01580: 创建控制备份文件c:\a时出错∙ORA-27038: skgfrcre: 文件存在∙OSD-04010: <创建> 选项指定,文件已经存在∙∙∙SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'c:\a' reuse;∙∙数据库已更改。
∙∙SQL>∙∙3、∙Shutdown,直接看init.ora文件中的control_files项,找到其中任意一个控制文件,∙用操作系统命令复制到备份地点即可(如:软盘、光盘、磁带等)∙∙第一种方法产生的是一个跟踪文件,里面存放的是创建控制文件的脚本,可以用记事本等文本编辑器打开∙这个脚本可以让你重新创建控制文件,∙生成一个跟踪文件到init.ora中user_dump_dest所指的目录下($ORACLE_HOME\ADMIN\ORADB\UDUMP\)。
toad-ORACLE错误代码
ORACLE错误一览表2011-03-08 14:51ORA-02001: 用户 SYS 不允许创建可用列表组的索引orA-02002: 写入审记线索时出错orA-02003: 无效的 USERENV 参数orA-02004: 违反安全性orA-02005: 隐含 (-1) 长度对数据类型的定义和赋值无效orA-02006: 无效的压缩十进制格式字符串orA-02007: 不能使用含 REBUILD 的 ALLOCATE 或 DEALLOCATE 选项orA-02008: 已指定非数字列的非零标度orA-02009: 指定的文件大小不得为 0orA-02010: 缺少主机连接字符串orA-02011: 重复的数据库链接名orA-02012: 缺少 USING 关键字orA-02013: 缺少 CONNECT 关键字orA-02014: 不能从具有 DISTINCT, GROUP BY 等的视图选择 Update FOR orA-02015: 不能从远程表选择 FOR UpdateorA-02016: 不能在远程数据库中使用 START WITH 子查询orA-02017: 要求整数值orA-02018: 同名的数据库链接具有开放连接orA-02019: 未找到远程数据库的连接说明orA-02020: 过多的数据库链接在使用中orA-02021: 不允许对远程数据库进行 DDL 操作orA-02022: 远程语句的远程对象具有未优化的视图orA-02023: 远程数据库无法对 START WITH 或 CONNECT BY 谓词求值orA-02024: 未找到数据库链接orA-02025: SQL 语句的所有表均必须在远程数据库中orA-02026: 缺少 LINK 关键字orA-02027: 不支持 LONG 列的多行 UpdateorA-02028: 服务器不支持行数的准确读取orA-02029: 缺少 FLLE 关键字orA-02030: 只能从固定的表/视图查询orA-02031: 没有 ROWID 适用于固定表或外部组织的表orA-02032: 聚簇表无法在簇索引建立之前使用orA-02033: 此簇的簇索引已经存在orA-02034: 不允许加速赋值orA-02035: 非法的成组操作组合orA-02036: 自动游标打开的变量描述过多orA-02037: 未初始化的加速赋值存储orA-02038: 不允许对数组类型定义orA-02039: 不允许对数组类型赋值orA-02040: 远程数据库不支持两段式提交orA-02041: 客户数据库未开始一个事务处理orA-02042: 分布式事务处理过多orA-02043: 必须在执行之前结束当前事务处理orA-02044: 事务处理管理器登录被拒绝: 事务处理正在进行orA-02045: 全局事务处理中的本地会话过多orA-02046: 分布式事务处理已经开始orA-02047: 无法连接运行中的分布式事务处理orA-02048: 尝试不登录而开始分布式事务处理orA-02049: 超时: 分布式事务处理等待锁定orA-02050: 事务处理已重算,某些远程 DBs 可能有问题orA-02051: 同一事务处理中的另一会话失败orA-02052: 远程事务处理在失败orA-02053: 事务处理已提交,某些远程 DBs 可能有问题orA-02054: 事务处理有问题orA-02055: 分布式更新操作失效;要求回退orA-02056: 2PC: : 无效的两段命令编号(源于)orA-02057: 2PC: : 无效的两段恢复状态编号(源于)orA-02058: 未找到 ID的准备事务处理orA-02059: orA-2PC-CRASH-TEST- 在提交备注中orA-02060: 选择指定了分布表连接的更新orA-02061: 锁定表指定了分布式表的列表orA-02062: 分布式恢复收到 DBID ,预计为orA-02063: 紧接着(源于)orA-02064: 不支持分布式操作orA-02065: 非法的 Alter SYSTEM 选项orA-02066: DISPATCHERS 文本缺失或无效orA-02067: 要求事务处理或保存点回退orA-02068: 以下严重错误源于orA-02069: 此操作的global_names参数必须设置为 TRUE orA-02070: 数据库不支持此上下文中的orA-02071: 初始化远程数据库的功能时出错orA-02072: 分布式数据库网络协议匹配错误orA-02073: 远程更新中不支持序号orA-02074: 无法在分布式事务处理中orA-02075: 另一例程已更改事务处理的状态orA-02076: 序列与更新表或 long 列位于不同的地方orA-02077: 选择的 long 列必须来自于同一地方的表orA-02078: Alter SYSTEM FIXED_DATE 的设置无效orA-02079: 没有新的会话可与提交的分布式事务处理连接orA-02080: 数据库链接正在使用中orA-02081: 数据库链接未打开orA-02082: 回送数据库链接必须具有连结限定词orA-02083: 数据库名称含有非法字符 ''orA-02084: 数据库名不全orA-02085: 数据库链接与相连结orA-02086: 数据库 (链路) 名过长orA-02087: 对象被同一事务处理的另一进程锁定orA-02088: 未安装分布式数据库选项orA-02089: COMMIT 不允许在附属会话中orA-02090: 网络错误: 试图callback+passthruorA-02091: 事务处理已重算orA-02092: 超出分布式事务处理的事务处理表槽orA-02093: TRANSACTIONS_PER_ROLLBACK_SEGMENT() 大于最大的可能数 () orA-02094: 未安装复制选项orA-02095: 无法修改指定的初始化参数orA-02096: 此选项的指定初始化参数不可修改orA-02097: 无法修改参数,因为指定的值无效orA-02098: 对索引表引用 (: I) 进行语法分析时出错orA-02099: 内部使用,不得打印orA-02100: PCC: 内存不足 (如无法分配)orA-02101: PCC: 不一致的游标高速缓存 (uce/cuc不匹配)orA-02102: PCC: 不一致的游标高速缓存 (此uce无 cur 条目)orA-02103: PCC: 不一致的游标高速缓存 (超出cuc的引用范围)orA-02104: PCC: 不一致的主高速缓存 (cuc不可用)orA-02105: PCC: 不一致的游标高速缓存 (高速缓存中无cuc条目)orA-02106: PCC: 不一致的游标高速缓存 (OraCursor nr 已坏)orA-02107: PCC: 对运行时库来说此程序过旧: 请重新对其编译orA-02108: PCC: 无效的描述符传送给运行时库orA-02109: PCC: 不一致的主高速缓存 (超出位置引用范围)orA-02110: PCC: 不一致的主高速缓存 (无效的sqi类型)orA-02111: PCC: 堆栈 (Heap) 一致性错误orA-02112: PCC: Select..INTO返回过多行orA-02140: 无效的表空间名称orA-02141: 无效的 OFFLINE 选项orA-02142: 缺少或无效的 Alter TABLESPACE 选项orA-02143: 无效的 STORAGE 选项orA-02144: 未指定 Alter CLUSTER 的选项orA-02145: 缺少 STORAGE 选项orA-02146: SHARED 指定了多次orA-02147: 与 SHARED/EXCLUSIVE 选项冲突orA-02148: EXCLUSIVE 指定了多次orA-02149: 指定的分区不存在orA-02153: 无效的 VALUES 口令字符串orA-02155: 无效的 DEFAULT 表空间标识orA-02156: 无效的 TEMPORARY 表空间标识orA-02157: 未指定 Alter USER 的选项orA-02158: 无效的 Create INDEX 选项orA-02159: 安装的 DLM 不支持可释放锁定模式orA-02160: 索引编排表不能包含 LONG 类型的列orA-02161: MAXLOGFILES 值无效orA-02162: MAXDATAFILES 值无效orA-02163: FREELIST GROUPS 值无效orA-02164: DATAFILE 子句指定了多次orA-02165: 无效的 Create DATABASE 选项orA-02166: 已指定 ARCHIVELOG 和 NOARCHIVELOGorA-02167: LOGFILE 子句指定了多次orA-02168: FREELISTS 值无效orA-02169: 不允许的 FREELISTS 存储选项orA-02170: 不允许的 FREELIST GROUPS 存储选项orA-02171: MAXLOGHISTORY 值无效orA-02172: PUBLIC 关键字不适用于禁用线程orA-02173: 无效的 Drop TABLESPACE 选项orA-02174: 缺少要求的线程编号orA-02175: 无效的回退段名orA-02176: 无效的 CRATE ROLLBACK SEGMENG 选项orA-02177: 缺少要求的组号orA-02178: 正确的语法是: SET TRANSACTION READ { ONLY | WRITE }orA-02179: 有效选项: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED } orA-02180: 无效的 Create TABLESPACE 选项orA-02181: 无效的 ROLLBAC WORK 选项orA-02182: 需要保存点名称orA-02183: 有效选项: ISOLATION_LEVEL { SERIALIZABLE | READ COMMITTED }orA-02184: REVOKE 中不允许资源限量orA-02185: COMMIT 后面跟的标记不是 WORKorA-02186: 表空间资源权限不可与其它权限一起出现orA-02187: 无效的限量说明orA-02189: 需要 ON <表空间>orA-02190: 需要 TABLES 关键字orA-02191: 正确的语法是 ET TRANSACTION USE ROLLBACK SEGMENT <rbs> orA-02192: 回退段存储子句不允许 PCTINCREASEorA-02194: 事件说明语法错误 (非致命错误 ) 接近 ''orA-02195: 尝试创建的对象在表空间中orA-02196: 已经指定 PERMANENT/TEMPORARY 选项orA-02197: 已经指定文件列表orA-02198: 已经指定 ONLINE/OFFLINE 选项orA-02199: 丢失 DATAFILE/TEMPFILE 子句orA-02200: WITH GRANG OPTION 对 PUBLIC 不允许orA-02201: 此处不允许序列(号)orA-02202: 此群集中不允许添加其它表orA-02203: 不允许的 INITIAL 存储选项orA-02204: 不允许 Alter, INDEX 和 EXECUTE 用于视图orA-02205: 只有 Select 和 Alter 权限对序列有效orA-02206: 重复的 INITRANG 选项说明orA-02207: 无效的 INITRANS 选项值orA-02208: 重复的 MAXTRANS 选项说明orA-02209: 无效的 MAXTRANS 选项值orA-02210: 未指定 Alter TABLE 的选项orA-02211: 无效的 PCTFREE 或 PCTUSED 值orA-02212: 重复的 PCTFREE 选项说明orA-02213: 重复的 PCTUSED 选项说明orA-02214: 重复的 BACKUP 选项说明orA-02215: 重复的表空间名子句orA-02216: 需要表空间名orA-02217: 重复的存储选项说明orA-02218: 无效的 INITIAL 存储选项值orA-02219: 无效的 NEXT 存储选项值orA-02220: 无效的 MINEXTENTS 存储选项值orA-02221: 无效的 MAXEXTENTS 存储选项值orA-02222: 无效的 PCTINCREASE 存储选项值orA-02223: 无效的 OPTIMAL 存储选项值orA-02224: EXECUTE 权限对于表不允许orA-02225: 只有 EXECUTE 和 DEBUG 权限对过程有效orA-02226: 无效的 MAXEXTENTS 值(最大允许为: )orA-02227: 无效的群集名orA-02228: 重复的 SIZE 说明orA-02229: 无效的 SIZE 选项值orA-02230: 无效的 Alter CLUSTER 选项orA-02231: 缺少或无效的 Alter DATABASE 选项orA-02232: 无效的 MOUNT 模式orA-02233: 无效的 CLOSE 模式orA-02234: 已经记录对此表的更改orA-02235: 此表已将更改记录在另一表中orA-02236: 无效的文件名orA-02237: 无效的文件大小orA-02238: 文件名列表具有不同的文件数orA-02239: 存在引用此序列的对象orA-02240: 无效的 OBJNO 或 TABNO 值orA-02241: 必须是 EXTENTS (FILE <n> BLOCK <n> SIZE <n>,...) 格式orA-02242: 未指定 Alter INDEX 的选项orA-02243: Alter INDEX 或 Alter MATERIALIZED VIEW 选项无效orA-02244: 无效的 Alter ROLLBACK SEGMENT 选项orA-02245: 无效的 ROLLBACK SEGMENT 名orA-02246: 缺少 EVENTS 文本orA-02247: 未指定 Alter SESSION 的选项orA-02248: 无效的 Alter SESSION 选项orA-02249: 缺少或无效的 MAXLOGMEMBERS 值orA-02250: 缺少或无效的约束条件名orA-02251: 此处不允许子查询orA-02252: 检查未正确结束的约束条件orA-02253: 此处不允许约束条件说明orA-02254: 此处不允许 DEFAULT <表达式>orA-02255: obsolete 7.1.5orA-02256: 要引用的列数必须与已引用道感数匹配orA-02257: 超出最大列数orA-02258: 重复或冲突的 NULL 和(或)NOT NULL 说明orA-02259: 重复的 UNIQUE/PRIMARY KEY 说明orA-02260: 表只能具有一个主键orA-02261: 表中已存在这样的唯一关键字或主键orA-02262: 对列默认值表达式进行类型检查时, 出现orA- orA-02263: 需要指定此列的数据类型orA-02264: 名称已被一现有约束条件占用orA-02265: 无法推导引用列的数据类型orA-02266: 表中的唯一/主键被启用的外部关键字引用orA-02267: 列类型与引用的列类型不兼容orA-02268: 引用的表不具有主键orA-02269: 关键字列不能是 LONG 数据类型orA-02270: 此列列表的唯一或主键不匹配orA-02271: 表没有这样的约束条件orA-02272: 约束条件列不能是 LONG 数据类型orA-02273: 此唯一/主键已被某些外部关键字引用orA-02274: 重复的引用约束条件说明orA-02275: 此表中已经存在这样的引用约束条件orA-02276: 默认值类型与列类型不兼容orA-02277: 无效的序列名orA-02278: 重复或冲突的orDER/NOORDER 说明orA-02279: 重复或冲突的orDER/NOORDER 说明orA-02280: 重复或冲突的orDER/NOORDER 说明orA-02281: 重复或冲突的orDER/NOORDER 说明orA-02282: 重复或冲突的orDER/NOORDER 说明orA-02283: 无法改变起始序号orA-02284: 重复的 INCREMENT BY 说明orA-02285: 重复的 START WITH 说明orA-02286: 未指定 Alter SEQUENCE 的选项orA-02287: 此处不允许序号orA-02288: 无效的 OPEN 模式orA-02289: 序列(号)不存在orA-02290: 违反检查约束条件 (.)orA-02291: 违反完整约束条件 (.) - 未找到父项关键字orA-02292: 违反完整约束条件 (.) - 已找到子记录日志orA-02293: 无法验证 (.) - 违反检查约束条件orA-02294: 无法启用 (.) - 约束条件在验证过程中更改orA-02295: 找到约束条件的多个启用/禁用子句orA-02296: 无法启用 (.) - 找到空值orA-02297: 无法禁用约束条件 (.) - 存在依赖关系orA-02298: 无法验证 (.) - 未找到父项关键字orA-02299: 无法验证 (.) - 未找到重复关键字orA-02300: 无效的 OIDGENERATORS 值orA-02301: OIDGENERATORS 的最大数为 255orA-02302: 无效或缺少类型名orA-02303: 无法使用类型或表的相关性来删除或取代一个类型orA-02304: 无效的对象标识文字orA-02305: 只有 EXECUTE, DEBUG 和 UNDER权限对类型有效orA-02306: 无法创建已具有有效相关性的类型orA-02307: 无法使用 REPLACE 选项改变无效类型orA-02308: 无效的对象类型列选项orA-02309: 违反原子 NULLorA-02310: 超出表中允许的最大列数orA-02311: 无法使用 COMPILE 选项改变具有类型或表相关性的有效类型orA-02313: 对象类型包含不可查询的类型属性orA-02315: 默认构造符的参数个数错误orA-02320: 无法创建嵌套表列的存储表orA-02322: 无法访问嵌套表列的访问表orA-02324: THE 子查询的 Select 列表中存在多列orA-02327: 无法以数据类型的表达式创建索引orA-02329: 数据类型的列不能是唯一关键字或主键orA-02330: 不允许的数据类型说明orA-02331: 无法创建数据类型为的列的约束条件orA-02332: 无法对此列的属性创建索引orA-02333: 无法对此列的属性创建约束条件orA-02334: 无法推断列类型orA-02335: 无效的群集列数据类型orA-02336: 无法访问列属性orA-02337: 不是对象类型列orA-02338: 缺少或无效的列约束条件说明orA-02339: 无效的列说明orA-02340: 无效的列说明orA-02342: 取代类型具有编译错误orA-02344: 无法撤消执行具有表相关性的类型orA-02345: 无法创建具有基于 CURSOR 运算符的列的视图orA-02347: 无法授权给对象表列orA-02348: 无法创建具有嵌入 LOB 的 VARRAY 列orA-02349: 无效的用户自定义类型 - 类型不完整orA-02351: 记录: 被拒绝 - 表, 列上出错orA-02352: 直接路径连接必须在同类间进行orA-02353: 多字节字符错误orA-02354: 字段中出现转换初始化错误orA-02355: CONSTANT 字段中出现转换错误orA-02356: 数据库空间耗尽。
less15_securefiles
15-2
版权所有 © 2007,Oracle。保留所有权利。
管理企业信息
组织需要有效且安全地管理许多类型的数据: 组织需要有效且安全地管理许多类型的数据: • 结构化:简单数据,对象关系数据 结构化:简单数据, • 半结构化:XML 文档,文字处理文档 半结构化: 文档, • 非结构化:介质、医学数据、映像 非结构化:介质、医学数据、
结构化
半结构化
非结构化
15-3
版权所有 © 2007,Oracle。保留所有权利。
现有 LOB 实施中的问题
• LOB 大小限制 • 主要考虑“单写多读”数据 主要考虑“单写多读” • 提供低并发性的 DML • 用户定义的版本控制 • 统一 CHUNK 大小: 大小:
– 影响碎片 – 大小上限
• Oracle Real Application Clusters (RAC) 的可扩展性 问题
15-7
版权所有 © 2007,Oracle。保留所有权利。
SecureFiles:存储选项
• MAXSIZE:指定最大 LOB 段大小 • RETENTION:指定要使用的保留策略
– MAX:达到 MAXSIZE 之前保留旧版本。 之前保留旧版本。 – MIN:至少将旧版本保留 MIN 秒。 – AUTO:默认值 – NONE:尽可能重用旧版本。 尽可能重用旧版本。
小结
在本课中,您应该已经学会如何使用: 在本课中,您应该已经学会如何使用: • SecureFiles 提高 LOB 性能 • SQL 和 PL/SQL API 访问 SecureFiles
15-17
版权所有 © 2007,Oracle。保留所有权利。
练习 15:概览
此练习介绍了对于压缩、 此练习介绍了对于压缩、数据加密以及性能使用 SecureFiles 的优势。 的优势。
toad-ORACLE错误代码
ORACLE错误一览表2011-03-08 14:51ORA-02001: 用户 SYS 不允许创建可用列表组的索引orA-02002: 写入审记线索时出错orA-02003: 无效的 USERENV 参数orA-02004: 违反安全性orA-02005: 隐含 (-1) 长度对数据类型的定义和赋值无效orA-02006: 无效的压缩十进制格式字符串orA-02007: 不能使用含 REBUILD 的 ALLOCATE 或 DEALLOCATE 选项orA-02008: 已指定非数字列的非零标度orA-02009: 指定的文件大小不得为 0orA-02010: 缺少主机连接字符串orA-02011: 重复的数据库链接名orA-02012: 缺少 USING 关键字orA-02013: 缺少 CONNECT 关键字orA-02014: 不能从具有 DISTINCT, GROUP BY 等的视图选择 Update FOR orA-02015: 不能从远程表选择 FOR UpdateorA-02016: 不能在远程数据库中使用 START WITH 子查询orA-02017: 要求整数值orA-02018: 同名的数据库链接具有开放连接orA-02019: 未找到远程数据库的连接说明orA-02020: 过多的数据库链接在使用中orA-02021: 不允许对远程数据库进行 DDL 操作orA-02022: 远程语句的远程对象具有未优化的视图orA-02023: 远程数据库无法对 START WITH 或 CONNECT BY 谓词求值orA-02024: 未找到数据库链接orA-02025: SQL 语句的所有表均必须在远程数据库中orA-02026: 缺少 LINK 关键字orA-02027: 不支持 LONG 列的多行 UpdateorA-02028: 服务器不支持行数的准确读取orA-02029: 缺少 FLLE 关键字orA-02030: 只能从固定的表/视图查询orA-02031: 没有 ROWID 适用于固定表或外部组织的表orA-02032: 聚簇表无法在簇索引建立之前使用orA-02033: 此簇的簇索引已经存在orA-02034: 不允许加速赋值orA-02035: 非法的成组操作组合orA-02036: 自动游标打开的变量描述过多orA-02037: 未初始化的加速赋值存储orA-02038: 不允许对数组类型定义orA-02039: 不允许对数组类型赋值orA-02040: 远程数据库不支持两段式提交orA-02041: 客户数据库未开始一个事务处理orA-02042: 分布式事务处理过多orA-02043: 必须在执行之前结束当前事务处理orA-02044: 事务处理管理器登录被拒绝: 事务处理正在进行orA-02045: 全局事务处理中的本地会话过多orA-02046: 分布式事务处理已经开始orA-02047: 无法连接运行中的分布式事务处理orA-02048: 尝试不登录而开始分布式事务处理orA-02049: 超时: 分布式事务处理等待锁定orA-02050: 事务处理已重算,某些远程 DBs 可能有问题orA-02051: 同一事务处理中的另一会话失败orA-02052: 远程事务处理在失败orA-02053: 事务处理已提交,某些远程 DBs 可能有问题orA-02054: 事务处理有问题orA-02055: 分布式更新操作失效;要求回退orA-02056: 2PC: : 无效的两段命令编号(源于)orA-02057: 2PC: : 无效的两段恢复状态编号(源于)orA-02058: 未找到 ID的准备事务处理orA-02059: orA-2PC-CRASH-TEST- 在提交备注中orA-02060: 选择指定了分布表连接的更新orA-02061: 锁定表指定了分布式表的列表orA-02062: 分布式恢复收到 DBID ,预计为orA-02063: 紧接着(源于)orA-02064: 不支持分布式操作orA-02065: 非法的 Alter SYSTEM 选项orA-02066: DISPATCHERS 文本缺失或无效orA-02067: 要求事务处理或保存点回退orA-02068: 以下严重错误源于orA-02069: 此操作的global_names参数必须设置为 TRUE orA-02070: 数据库不支持此上下文中的orA-02071: 初始化远程数据库的功能时出错orA-02072: 分布式数据库网络协议匹配错误orA-02073: 远程更新中不支持序号orA-02074: 无法在分布式事务处理中orA-02075: 另一例程已更改事务处理的状态orA-02076: 序列与更新表或 long 列位于不同的地方orA-02077: 选择的 long 列必须来自于同一地方的表orA-02078: Alter SYSTEM FIXED_DATE 的设置无效orA-02079: 没有新的会话可与提交的分布式事务处理连接orA-02080: 数据库链接正在使用中orA-02081: 数据库链接未打开orA-02082: 回送数据库链接必须具有连结限定词orA-02083: 数据库名称含有非法字符 ''orA-02084: 数据库名不全orA-02085: 数据库链接与相连结orA-02086: 数据库 (链路) 名过长orA-02087: 对象被同一事务处理的另一进程锁定orA-02088: 未安装分布式数据库选项orA-02089: COMMIT 不允许在附属会话中orA-02090: 网络错误: 试图callback+passthruorA-02091: 事务处理已重算orA-02092: 超出分布式事务处理的事务处理表槽orA-02093: TRANSACTIONS_PER_ROLLBACK_SEGMENT() 大于最大的可能数 () orA-02094: 未安装复制选项orA-02095: 无法修改指定的初始化参数orA-02096: 此选项的指定初始化参数不可修改orA-02097: 无法修改参数,因为指定的值无效orA-02098: 对索引表引用 (: I) 进行语法分析时出错orA-02099: 内部使用,不得打印orA-02100: PCC: 内存不足 (如无法分配)orA-02101: PCC: 不一致的游标高速缓存 (uce/cuc不匹配)orA-02102: PCC: 不一致的游标高速缓存 (此uce无 cur 条目)orA-02103: PCC: 不一致的游标高速缓存 (超出cuc的引用范围)orA-02104: PCC: 不一致的主高速缓存 (cuc不可用)orA-02105: PCC: 不一致的游标高速缓存 (高速缓存中无cuc条目)orA-02106: PCC: 不一致的游标高速缓存 (OraCursor nr 已坏)orA-02107: PCC: 对运行时库来说此程序过旧: 请重新对其编译orA-02108: PCC: 无效的描述符传送给运行时库orA-02109: PCC: 不一致的主高速缓存 (超出位置引用范围)orA-02110: PCC: 不一致的主高速缓存 (无效的sqi类型)orA-02111: PCC: 堆栈 (Heap) 一致性错误orA-02112: PCC: Select..INTO返回过多行orA-02140: 无效的表空间名称orA-02141: 无效的 OFFLINE 选项orA-02142: 缺少或无效的 Alter TABLESPACE 选项orA-02143: 无效的 STORAGE 选项orA-02144: 未指定 Alter CLUSTER 的选项orA-02145: 缺少 STORAGE 选项orA-02146: SHARED 指定了多次orA-02147: 与 SHARED/EXCLUSIVE 选项冲突orA-02148: EXCLUSIVE 指定了多次orA-02149: 指定的分区不存在orA-02153: 无效的 VALUES 口令字符串orA-02155: 无效的 DEFAULT 表空间标识orA-02156: 无效的 TEMPORARY 表空间标识orA-02157: 未指定 Alter USER 的选项orA-02158: 无效的 Create INDEX 选项orA-02159: 安装的 DLM 不支持可释放锁定模式orA-02160: 索引编排表不能包含 LONG 类型的列orA-02161: MAXLOGFILES 值无效orA-02162: MAXDATAFILES 值无效orA-02163: FREELIST GROUPS 值无效orA-02164: DATAFILE 子句指定了多次orA-02165: 无效的 Create DATABASE 选项orA-02166: 已指定 ARCHIVELOG 和 NOARCHIVELOGorA-02167: LOGFILE 子句指定了多次orA-02168: FREELISTS 值无效orA-02169: 不允许的 FREELISTS 存储选项orA-02170: 不允许的 FREELIST GROUPS 存储选项orA-02171: MAXLOGHISTORY 值无效orA-02172: PUBLIC 关键字不适用于禁用线程orA-02173: 无效的 Drop TABLESPACE 选项orA-02174: 缺少要求的线程编号orA-02175: 无效的回退段名orA-02176: 无效的 CRATE ROLLBACK SEGMENG 选项orA-02177: 缺少要求的组号orA-02178: 正确的语法是: SET TRANSACTION READ { ONLY | WRITE }orA-02179: 有效选项: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED } orA-02180: 无效的 Create TABLESPACE 选项orA-02181: 无效的 ROLLBAC WORK 选项orA-02182: 需要保存点名称orA-02183: 有效选项: ISOLATION_LEVEL { SERIALIZABLE | READ COMMITTED }orA-02184: REVOKE 中不允许资源限量orA-02185: COMMIT 后面跟的标记不是 WORKorA-02186: 表空间资源权限不可与其它权限一起出现orA-02187: 无效的限量说明orA-02189: 需要 ON <表空间>orA-02190: 需要 TABLES 关键字orA-02191: 正确的语法是 ET TRANSACTION USE ROLLBACK SEGMENT <rbs> orA-02192: 回退段存储子句不允许 PCTINCREASEorA-02194: 事件说明语法错误 (非致命错误 ) 接近 ''orA-02195: 尝试创建的对象在表空间中orA-02196: 已经指定 PERMANENT/TEMPORARY 选项orA-02197: 已经指定文件列表orA-02198: 已经指定 ONLINE/OFFLINE 选项orA-02199: 丢失 DATAFILE/TEMPFILE 子句orA-02200: WITH GRANG OPTION 对 PUBLIC 不允许orA-02201: 此处不允许序列(号)orA-02202: 此群集中不允许添加其它表orA-02203: 不允许的 INITIAL 存储选项orA-02204: 不允许 Alter, INDEX 和 EXECUTE 用于视图orA-02205: 只有 Select 和 Alter 权限对序列有效orA-02206: 重复的 INITRANG 选项说明orA-02207: 无效的 INITRANS 选项值orA-02208: 重复的 MAXTRANS 选项说明orA-02209: 无效的 MAXTRANS 选项值orA-02210: 未指定 Alter TABLE 的选项orA-02211: 无效的 PCTFREE 或 PCTUSED 值orA-02212: 重复的 PCTFREE 选项说明orA-02213: 重复的 PCTUSED 选项说明orA-02214: 重复的 BACKUP 选项说明orA-02215: 重复的表空间名子句orA-02216: 需要表空间名orA-02217: 重复的存储选项说明orA-02218: 无效的 INITIAL 存储选项值orA-02219: 无效的 NEXT 存储选项值orA-02220: 无效的 MINEXTENTS 存储选项值orA-02221: 无效的 MAXEXTENTS 存储选项值orA-02222: 无效的 PCTINCREASE 存储选项值orA-02223: 无效的 OPTIMAL 存储选项值orA-02224: EXECUTE 权限对于表不允许orA-02225: 只有 EXECUTE 和 DEBUG 权限对过程有效orA-02226: 无效的 MAXEXTENTS 值(最大允许为: )orA-02227: 无效的群集名orA-02228: 重复的 SIZE 说明orA-02229: 无效的 SIZE 选项值orA-02230: 无效的 Alter CLUSTER 选项orA-02231: 缺少或无效的 Alter DATABASE 选项orA-02232: 无效的 MOUNT 模式orA-02233: 无效的 CLOSE 模式orA-02234: 已经记录对此表的更改orA-02235: 此表已将更改记录在另一表中orA-02236: 无效的文件名orA-02237: 无效的文件大小orA-02238: 文件名列表具有不同的文件数orA-02239: 存在引用此序列的对象orA-02240: 无效的 OBJNO 或 TABNO 值orA-02241: 必须是 EXTENTS (FILE <n> BLOCK <n> SIZE <n>,...) 格式orA-02242: 未指定 Alter INDEX 的选项orA-02243: Alter INDEX 或 Alter MATERIALIZED VIEW 选项无效orA-02244: 无效的 Alter ROLLBACK SEGMENT 选项orA-02245: 无效的 ROLLBACK SEGMENT 名orA-02246: 缺少 EVENTS 文本orA-02247: 未指定 Alter SESSION 的选项orA-02248: 无效的 Alter SESSION 选项orA-02249: 缺少或无效的 MAXLOGMEMBERS 值orA-02250: 缺少或无效的约束条件名orA-02251: 此处不允许子查询orA-02252: 检查未正确结束的约束条件orA-02253: 此处不允许约束条件说明orA-02254: 此处不允许 DEFAULT <表达式>orA-02255: obsolete 7.1.5orA-02256: 要引用的列数必须与已引用道感数匹配orA-02257: 超出最大列数orA-02258: 重复或冲突的 NULL 和(或)NOT NULL 说明orA-02259: 重复的 UNIQUE/PRIMARY KEY 说明orA-02260: 表只能具有一个主键orA-02261: 表中已存在这样的唯一关键字或主键orA-02262: 对列默认值表达式进行类型检查时, 出现orA- orA-02263: 需要指定此列的数据类型orA-02264: 名称已被一现有约束条件占用orA-02265: 无法推导引用列的数据类型orA-02266: 表中的唯一/主键被启用的外部关键字引用orA-02267: 列类型与引用的列类型不兼容orA-02268: 引用的表不具有主键orA-02269: 关键字列不能是 LONG 数据类型orA-02270: 此列列表的唯一或主键不匹配orA-02271: 表没有这样的约束条件orA-02272: 约束条件列不能是 LONG 数据类型orA-02273: 此唯一/主键已被某些外部关键字引用orA-02274: 重复的引用约束条件说明orA-02275: 此表中已经存在这样的引用约束条件orA-02276: 默认值类型与列类型不兼容orA-02277: 无效的序列名orA-02278: 重复或冲突的orDER/NOORDER 说明orA-02279: 重复或冲突的orDER/NOORDER 说明orA-02280: 重复或冲突的orDER/NOORDER 说明orA-02281: 重复或冲突的orDER/NOORDER 说明orA-02282: 重复或冲突的orDER/NOORDER 说明orA-02283: 无法改变起始序号orA-02284: 重复的 INCREMENT BY 说明orA-02285: 重复的 START WITH 说明orA-02286: 未指定 Alter SEQUENCE 的选项orA-02287: 此处不允许序号orA-02288: 无效的 OPEN 模式orA-02289: 序列(号)不存在orA-02290: 违反检查约束条件 (.)orA-02291: 违反完整约束条件 (.) - 未找到父项关键字orA-02292: 违反完整约束条件 (.) - 已找到子记录日志orA-02293: 无法验证 (.) - 违反检查约束条件orA-02294: 无法启用 (.) - 约束条件在验证过程中更改orA-02295: 找到约束条件的多个启用/禁用子句orA-02296: 无法启用 (.) - 找到空值orA-02297: 无法禁用约束条件 (.) - 存在依赖关系orA-02298: 无法验证 (.) - 未找到父项关键字orA-02299: 无法验证 (.) - 未找到重复关键字orA-02300: 无效的 OIDGENERATORS 值orA-02301: OIDGENERATORS 的最大数为 255orA-02302: 无效或缺少类型名orA-02303: 无法使用类型或表的相关性来删除或取代一个类型orA-02304: 无效的对象标识文字orA-02305: 只有 EXECUTE, DEBUG 和 UNDER权限对类型有效orA-02306: 无法创建已具有有效相关性的类型orA-02307: 无法使用 REPLACE 选项改变无效类型orA-02308: 无效的对象类型列选项orA-02309: 违反原子 NULLorA-02310: 超出表中允许的最大列数orA-02311: 无法使用 COMPILE 选项改变具有类型或表相关性的有效类型orA-02313: 对象类型包含不可查询的类型属性orA-02315: 默认构造符的参数个数错误orA-02320: 无法创建嵌套表列的存储表orA-02322: 无法访问嵌套表列的访问表orA-02324: THE 子查询的 Select 列表中存在多列orA-02327: 无法以数据类型的表达式创建索引orA-02329: 数据类型的列不能是唯一关键字或主键orA-02330: 不允许的数据类型说明orA-02331: 无法创建数据类型为的列的约束条件orA-02332: 无法对此列的属性创建索引orA-02333: 无法对此列的属性创建约束条件orA-02334: 无法推断列类型orA-02335: 无效的群集列数据类型orA-02336: 无法访问列属性orA-02337: 不是对象类型列orA-02338: 缺少或无效的列约束条件说明orA-02339: 无效的列说明orA-02340: 无效的列说明orA-02342: 取代类型具有编译错误orA-02344: 无法撤消执行具有表相关性的类型orA-02345: 无法创建具有基于 CURSOR 运算符的列的视图orA-02347: 无法授权给对象表列orA-02348: 无法创建具有嵌入 LOB 的 VARRAY 列orA-02349: 无效的用户自定义类型 - 类型不完整orA-02351: 记录: 被拒绝 - 表, 列上出错orA-02352: 直接路径连接必须在同类间进行orA-02353: 多字节字符错误orA-02354: 字段中出现转换初始化错误orA-02355: CONSTANT 字段中出现转换错误orA-02356: 数据库空间耗尽。
ORACLE中dbms_metadata用法
ORACLE 中 dbms_metadata 用法DBMS_METADATA.GET_DDL 包可以得到数据库的对象的 ddl 脚本。
如下(SQLPLUS 中执行): 1.得到一个表的 ddl 语句: SET SERVEROUTPUT ON SET LINESIZE 1000 SET FEEDBACK OFF set long 999999 SET PAGESIZE 1000 EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); ---去除 storage 等多余参数 SELECT DBMS_METADATA.GET_DDL('TABLE','TCC_NE_FRAME') FROM DUAL; SELECT DBMS_METADATA.GET_DDL('TABLE','TCC_NE_SNAP') FROM DUAL; 2.得到一个用户下的所有表,索引,存储过程的 ddl SET SERVEROUTPUT ON SET LINESIZE 1000 SET FEEDBACK OFF set long 999999 ------显示不完整 SET PAGESIZE 1000 ----分页 ---去除 storage 等多余参数 EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name) FROM USER_OBJECTS u where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE'); 3.得到所有表空间的 ddl 语句 SET SERVEROUTPUT ON SET LINESIZE 1000 SET FEEDBACK OFF set long 999999------显示不完整 SET PAGESIZE 1000----分页 ---去除 storage 等多余参数 SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name) FROM DBA_TABLESPACES TS; 4.得到所有创建用户的 ddl ------显示不完整 ----分页SET SERVEROUTPUT ON SET LINESIZE 1000 SET FEEDBACK OFF set long 999999------显示不完整 SET PAGESIZE 1000----分页 ---去除 storage 等多余参数 SELECT DBMS_METADATA.GET_DDL('USER',ername) FROM DBA_USERS U; 另外,若执行不了该包,则需要正确安装好相应的包。
Oracle维护常用SQL语句(查询系统表和视图)
Oracle维护常用SQL语句(查询系统表和视图)提要:1、查看表空间的名称及大小2、查看表空间物理文件的名称及大小3、查看回滚段名称及大小4、查看控制文件5、查看日志文件6、查看表空间的使用情况7、查看数据库库对象8、查看数据库的版本9、查看数据库的创建日期和归档方式10、捕捉运行很久的SQL11。
查看数据表的参数信息12.查看还没提交的事务13。
查找object为哪些进程所用14。
回滚段查看15。
耗资源的进程(top session)16。
查看锁(lock)情况17。
查看等待(wait)情况18。
查看sga情况19。
查看catched object20。
查看V$SQLAREA21。
查看object分类数量22。
按用户查看object种类23。
有关connection的相关信息1)查看有哪些用户连接2)根据v.sid查看对应连接的资源占用等情况3)根据sid查看对应连接正在运行的sql24.查询表空间使用情况25.查询表空间的碎片程度26.查询正在运行的数据库实例1、查看表空间的名称及大小select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from 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_version Where SUBSTR(PRODUCT,1,6)='Oracle';9、查看数据库的创建日期和归档方式Select Created, Log_Mode, Log_Mode From V$Database;10、捕捉运行很久的SQLcolumn username format a12column opname format a16column progress format a8select username,sid,opname,round(sofar*100 / totalwork,0) || '%' as progress, time_remaining,sql_textfrom v$session_longops , v$sqlwhere time_remaining <> 0and sql_address = addressand sql_hash_value = hash_value/11。
oracle语句汇总
Oracle 常用语句汇总select * from user_tab_comments 取得所有表的注释select * from user_col_comments 取得所有列的注释select * from user_tables 取得当前用户下所有的表1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表2、查找表的主键(包括名称,构成列):select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表3、查找表的唯一性约束(包括名称,构成列):select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名5、查询表的所有列及其属性select t.*,MENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表/*1-获取任意用户下的主键字段*/select cons.* from all_cons_columns cons, all_constraints conwhere con.constraint_type='P'and cons.table_name = '表名'and cons.constraint_name=con.constraint_name;/*2-获取本用户下的主键字段*/select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = '表名'正在看的ORACLE教程是:oracle常用sql语句。
关于Oracle SecureFile 功能
关于Oracle SecureFile 特性SecureFile功能是oracle 11g中对大对象(LOB)存储格式的完全重新设计实现,原来的LOB存储格式现在通称为BASIXFILE,它仍然是默认的存储方法,但是SECURFILE关键字开启了新的存储方法,它允许加密、利用压缩节约空间和数据重复消除。
特点∙Transactions, Read Consistency, Flashback∙100% Backward Compatibility with LOB Interfaces∙Readable Standby, Consistent Backup, Point in Time Recovery ∙Fine Grained Auditing, Label Security∙XML indexing, XML Queries, XPath∙Real Application Clusters∙Automatic Storage Management∙Partitioning and ILMSecureFile设置SecureFile只能在automatic segment space management(ASSM)表空间下建立。
参数设置:CHUNK:块大小,对于SECURFILE LOBs CHUNK是推荐值,主要是为了向下兼容的目的RETENTION:管理LOB字段镜像数据参数MAXSIZE:最大空间限制FREEPOOLS: 管理空闲块列表参数,在11g下,此参数对SECUREFILE LOBs忽略LOGGING/NOLOGGING/FILESYSTEM_LIKE_LOGGING:默认:LOGGING 记录redo 日志FILESYSTEM_LIKE_LOGGING :只记录SECUREFILE 的metadata,此选项对BasicFiles 无效,此选项类似于文件系统的metadata日志,LOGGING设置类似于文件系统数据日志。
Oracle建表DDL语句
Oracle建表DDL语句除了用PL/SQL DEV,Toad等工具得到建表DDL语句,使用dbms_metadata.get_ddl 也可以,用法如下。
且不仅限与表,所有对象都可以dbms_metadata.get_ddl('OBJECT_TYPE','OBJECT_NAME','OWNER')SQL> select dbms_metadata.get_ddl('SYNONYM','DCUSTMSGHIS','PUBLIC') from dual;DBMS_METADATA.GET_DDL('SYNONYM','DCUSTMSGHIS','PUBLIC')--------------------------------------------------------------------------------CREATE PUBLIC SYNONYM "DCUSTMSGHIS" FOR "DBACCADM"."DCUSTMSGHIS"select dbms_metadata.get_ddl('TABLE','WCHG201305','DBCUSTADM') FROM DUAL;select dbms_metadata.get_ddl('INDEX','PK_WCHG201305','DBCUSTADM') FROM DUAL;我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。
我们可以通过eXPort with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。
而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到。
如何在一个用户下设置定时任务操作另一用户下的数据
1、创建表空间,注意表空间名称create tablespace time_taskdatafile 'C:\app\Administrator\oradata\ time_task _jpgc.dbf' size 100m;2、创建用户名create user time_task identified by time_task default tablespace time_task _jpgc ;3、给用户名授权我先给与它dba权限,建完表后在予以connect权限测试grant dba to time_task;此时一个用户已经建好了3、新建一个表time_taskCREATE TABLE time_task( "ID"VARCHAR2(50) NOT NULL ENABLE,"SSQY"VARCHAR2(20),"XMMC"VARCHAR2(1000) NOT NULL ENABLE,"XMLX"VARCHAR2(20),"XMSX"VARCHAR2(200),"XMBM"VARCHAR2(20),"JJWT"VARCHAR2(20),"JSDW"VARCHAR2(200),"TZJH"VARCHAR2(20),"XMZT"VARCHAR2(20),"HTQDZT"VARCHAR2(20),"SJTDKGXL"VARCHAR2(1000),"XLTZCS"VARCHAR2(20),"SBZR"VARCHAR2(20),"XLQX"VARCHAR2(20),"SJDW"VARCHAR2(500),"SGDW"VARCHAR2(500),"JLDW"VARCHAR2(500),"XMFZR"VARCHAR2(20),"KHDWJLXR"VARCHAR2(100),"ND"VARCHAR2(20),"REMARK"VARCHAR2(2000),"INPUTTIME"DATE,"SJTDKGXLMC"VARCHAR2(1000),"MZGZJH"VARCHAR2(2000),"JGSJ"DATE,"GCHPJ"VARCHAR2(2000),"XMXDSJ"DATE) SEGMENT CREATION IMMEDIATEPCTFREE10PCTUSED40INITRANS1MAXTRANS255NOCOMPRESS LOGGING STORAGE(INITIAL65536NEXT1048576MINEXTENTS1MAXEXTENTS2147483645 PCTINCREASE0FREELISTS1FREELIST GROUPS1BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)TABLESPACE time_task;ALTER TABLE time_task MODIFY ("ID"NOT NULL ENABLE);ALTER TABLE time_task MODIFY ("XMMC"NOT NULL ENABLE);用管理员账号给time_task赋予connect权限grant connect to time_task;4、给time_task用户赋予此jpgc下test1表的权限这一步一定要注意,一定要把对表操作的权限赋号,万一赋权不足哪怕是dba权限也不能执行GRANT DELETE, UPDATE,INSERT,SELECT ON jpgc.test1 TO time_task;5、在time_task用户下新建一个定时任务5.1简单方法右键'Jobs'点击NEW填写定时器任务内容,点击下方应用what:insert into jpgc.test1 values (1,'小明'); commit;验证任务是否加入到了任务序列截图发现任务已加入到任务序列(‘25’时新建的定时任务唯一任务号)执行定时任务右键'25'(这是刚才的新建的定时任务),点击RUN初步推测应该是权限问题。
Oracle错误代码大全
ORA-00001: 违反唯一约束ORA-02001: 用户SYS 不允许创建可用列表组的索引ORA-02002: 写入审记线索时出错ORA-02003: 无效的USERENV 参数ORA-02004: 违反安全性ORA-02005: 隐含(-1) 长度对数据类型的定义和赋值无效ORA-02006: 无效的压缩十进制格式字符串ORA-02007: 不能使用含REBUILD 的ALLOCATE 或DEALLOCATE 选项ORA-02008: 已指定非数字列的非零标度ORA-02009: 指定的文件大小不得为0ORA-02010: 缺少主机连接字符串ORA-02011: 重复的数据库链接名ORA-02012: 缺少USING 关键字ORA-02013: 缺少CONNECT 关键字ORA-02014: 不能从具有DISTINCT, GROUP BY 等的视图选择Update FOR ORA-02015: 不能从远程表选择FOR UpdateORA-02016: 不能在远程数据库中使用START WITH 子查询ORA-02017: 要求整数值ORA-02018: 同名的数据库链接具有开放连接ORA-02019: 未找到远程数据库的连接说明ORA-02020: 过多的数据库链接在使用中ORA-02021: 不允许对远程数据库进行DDL 操作ORA-02022: 远程语句的远程对象具有未优化的视图ORA-02023: 远程数据库无法对START WITH 或CONNECT BY 谓词求值ORA-02024: 未找到数据库链接ORA-02025: SQL 语句的所有表均必须在远程数据库中ORA-02026: 缺少LINK 关键字ORA-02027: 不支持LONG 列的多行UpdateORA-02028: 服务器不支持行数的准确读取ORA-02029: 缺少FLLE 关键字ORA-02030: 只能从固定的表/视图查询ORA-02031: 没有ROWID 适用于固定表或外部组织的表ORA-02032: 聚簇表无法在簇索引建立之前使用ORA-02033: 此簇的簇索引已经存在ORA-02034: 不允许加速赋值ORA-02035: 非法的成组操作组合ORA-02036: 自动游标打开的变量描述过多ORA-02037: 未初始化的加速赋值存储ORA-02038: 不允许对数组类型定义ORA-02039: 不允许对数组类型赋值ORA-02040: 远程数据库不支持两段式提交ORA-02041: 客户数据库未开始一个事务处理ORA-02042: 分布式事务处理过多ORA-02043: 必须在执行之前结束当前事务处理ORA-02044: 事务处理管理器登录被拒绝: 事务处理正在进行ORA-02045: 全局事务处理中的本地会话过多ORA-02046: 分布式事务处理已经开始ORA-02047: 无法连接运行中的分布式事务处理ORA-02048: 尝试不登录而开始分布式事务处理ORA-02049: 超时: 分布式事务处理等待锁定ORA-02050: 事务处理已重算,某些远程DBs 可能有问题ORA-02051: 同一事务处理中的另一会话失败ORA-02052: 远程事务处理在失败ORA-02053: 事务处理已提交,某些远程DBs 可能有问题ORA-02054: 事务处理有问题ORA-02055: 分布式更新操作失效;要求回退ORA-02056: 2PC: : 无效的两段命令编号(源于)ORA-02057: 2PC: : 无效的两段恢复状态编号(源于)ORA-02058: 未找到ID的准备事务处理ORA-02059: ORA-2PC-CRASH-TEST- 在提交备注中ORA-02060: 选择指定了分布表连接的更新ORA-02061: 锁定表指定了分布式表的列表ORA-02062: 分布式恢复收到DBID ,预计为ORA-02063: 紧接着(源于)ORA-02064: 不支持分布式操作ORA-02065: 非法的Alter SYSTEM 选项ORA-02066: DISPATCHERS 文本缺失或无效ORA-02067: 要求事务处理或保存点回退ORA-02068: 以下严重错误源于ORA-02069: 此操作的global_names 参数必须设置为TRUE ORA-02070: 数据库不支持此上下文中的ORA-02071: 初始化远程数据库的功能时出错ORA-02072: 分布式数据库网络协议匹配错误ORA-02073: 远程更新中不支持序号ORA-02074: 无法在分布式事务处理中ORA-02075: 另一例程已更改事务处理的状态ORA-02076: 序列与更新表或long 列位于不同的地方ORA-02077: 选择的long 列必须来自于同一地方的表ORA-02078: Alter SYSTEM FIXED_DATE 的设置无效ORA-02079: 没有新的会话可与提交的分布式事务处理连接ORA-02080: 数据库链接正在使用中ORA-02081: 数据库链接未打开ORA-02082: 回送数据库链接必须具有连结限定词ORA-02083: 数据库名称含有非法字符''ORA-02084: 数据库名不全ORA-02085: 数据库链接与相连结ORA-02086: 数据库(链路) 名过长ORA-02087: 对象被同一事务处理的另一进程锁定ORA-02088: 未安装分布式数据库选项ORA-02089: COMMIT 不允许在附属会话中ORA-02090: 网络错误: 试图callback+passthruORA-02091: 事务处理已重算ORA-02092: 超出分布式事务处理的事务处理表槽ORA-02093: TRANSACTIONS_PER_ROLLBACK_SEGMENT() 大于最大的可能数() ORA-02094: 未安装复制选项ORA-02095: 无法修改指定的初始化参数ORA-02096: 此选项的指定初始化参数不可修改ORA-02097: 无法修改参数,因为指定的值无效ORA-02098: 对索引表引用(: I) 进行语法分析时出错ORA-02099: 内部使用,不得打印ORA-02100: PCC: 内存不足(如无法分配)ORA-02101: PCC: 不一致的游标高速缓存(uce/cuc 不匹配)ORA-02102: PCC: 不一致的游标高速缓存(此uce 无cur 条目)ORA-02103: PCC: 不一致的游标高速缓存(超出cuc 的引用范围)ORA-02104: PCC: 不一致的主高速缓存(cuc 不可用)ORA-02105: PCC: 不一致的游标高速缓存(高速缓存中无cuc 条目)ORA-02106: PCC: 不一致的游标高速缓存(ORACursor nr 已坏)ORA-02107: PCC: 对运行时库来说此程序过旧: 请重新对其编译ORA-02108: PCC: 无效的描述符传送给运行时库ORA-02109: PCC: 不一致的主高速缓存(超出位置引用范围)ORA-02110: PCC: 不一致的主高速缓存(无效的sqi 类型)ORA-02111: PCC: 堆栈(Heap) 一致性错误ORA-02112: PCC: Select..INTO 返回过多行ORA-02140: 无效的表空间名称ORA-02141: 无效的OFFLINE 选项ORA-02142: 缺少或无效的Alter TABLESPACE 选项ORA-02143: 无效的STORAGE 选项ORA-02144: 未指定Alter CLUSTER 的选项ORA-02145: 缺少STORAGE 选项ORA-02146: SHARED 指定了多次ORA-02147: 与SHARED/EXCLUSIVE 选项冲突ORA-02148: EXCLUSIVE 指定了多次ORA-02149: 指定的分区不存在ORA-02153: 无效的VALUES 口令字符串ORA-02155: 无效的DEFAULT 表空间标识ORA-02156: 无效的TEMPORARY 表空间标识ORA-02157: 未指定Alter USER 的选项ORA-02158: 无效的Create INDEX 选项ORA-02159: 安装的DLM 不支持可释放锁定模式ORA-02160: 索引编排表不能包含LONG 类型的列ORA-02161: MAXLOGFILES 值无效ORA-02162: MAXDATAFILES 值无效ORA-02163: FREELIST GROUPS 值无效ORA-02164: DATAFILE 子句指定了多次ORA-02165: 无效的Create DATABASE 选项ORA-02166: 已指定ARCHIVELOG 和NOARCHIVELOGORA-02167: LOGFILE 子句指定了多次ORA-02168: FREELISTS 值无效ORA-02169: 不允许的FREELISTS 存储选项ORA-02170: 不允许的FREELIST GROUPS 存储选项ORA-02171: MAXLOGHISTORY 值无效ORA-02172: PUBLIC 关键字不适用于禁用线程ORA-02173: 无效的Drop TABLESPACE 选项ORA-02174: 缺少要求的线程编号ORA-02175: 无效的回退段名ORA-02176: 无效的CRATE ROLLBACK SEGMENG 选项ORA-02177: 缺少要求的组号ORA-02178: 正确的语法是: SET TRANSACTION READ { ONLY | WRITE }ORA-02179: 有效选项: ISOLATION LEVEL { SERIALIZABLE | READ COMMITTED } ORA-02180: 无效的Create TABLESPACE 选项ORA-02181: 无效的ROLLBAC WORK 选项ORA-02182: 需要保存点名称ORA-02183: 有效选项: ISOLATION_LEVEL { SERIALIZABLE | READ COMMITTED } ORA-02184: REVOKE 中不允许资源限量ORA-02185: COMMIT 后面跟的标记不是WORKORA-02186: 表空间资源权限不可与其它权限一起出现ORA-02187: 无效的限量说明ORA-02189: 需要ON <表空间>ORA-02190: 需要TABLES 关键字ORA-02191: 正确的语法是 ET TRANSACTION USE ROLLBACK SEGMENT <rbs> ORA-02192: 回退段存储子句不允许PCTINCREASEORA-02194: 事件说明语法错误? (非致命错误) 接近''ORA-02195: 尝试创建的对象在表空间中ORA-02196: 已经指定PERMANENT/TEMPORARY 选项ORA-02197: 已经指定文件列表ORA-02198: 已经指定ONLINE/OFFLINE 选项ORA-02199: 丢失DATAFILE/TEMPFILE 子句ORA-02200: WITH GRANG OPTION 对PUBLIC 不允许ORA-02201: 此处不允许序列(号)ORA-02202: 此群集中不允许添加其它表ORA-02203: 不允许的INITIAL 存储选项ORA-02204: 不允许Alter, INDEX 和EXECUTE 用于视图ORA-02205: 只有Select 和Alter 权限对序列有效ORA-02206: 重复的INITRANG 选项说明ORA-02207: 无效的INITRANS 选项值ORA-02208: 重复的MAXTRANS 选项说明ORA-02209: 无效的MAXTRANS 选项值ORA-02210: 未指定Alter TABLE 的选项ORA-02211: 无效的PCTFREE 或PCTUSED 值ORA-02212: 重复的PCTFREE 选项说明ORA-02213: 重复的PCTUSED 选项说明ORA-02214: 重复的BACKUP 选项说明ORA-02215: 重复的表空间名子句ORA-02216: 需要表空间名ORA-02217: 重复的存储选项说明ORA-02218: 无效的INITIAL 存储选项值ORA-02219: 无效的NEXT 存储选项值ORA-02220: 无效的MINEXTENTS 存储选项值ORA-02221: 无效的MAXEXTENTS 存储选项值ORA-02222: 无效的PCTINCREASE 存储选项值ORA-02223: 无效的OPTIMAL 存储选项值ORA-02224: EXECUTE 权限对于表不允许ORA-02225: 只有EXECUTE 和DEBUG 权限对过程有效ORA-02226: 无效的MAXEXTENTS 值(最大允许为: )ORA-02227: 无效的群集名ORA-02228: 重复的SIZE 说明ORA-02229: 无效的SIZE 选项值ORA-02230: 无效的Alter CLUSTER 选项ORA-02231: 缺少或无效的Alter DATABASE 选项ORA-02232: 无效的MOUNT 模式ORA-02233: 无效的CLOSE 模式ORA-02234: 已经记录对此表的更改ORA-02235: 此表已将更改记录在另一表中ORA-02236: 无效的文件名ORA-02237: 无效的文件大小ORA-02238: 文件名列表具有不同的文件数ORA-02239: 存在引用此序列的对象ORA-02240: 无效的OBJNO 或TABNO 值ORA-02241: 必须是EXTENTS (FILE <n> BLOCK <n> SIZE <n>,...) 格式ORA-02242: 未指定Alter INDEX 的选项ORA-02243: Alter INDEX 或Alter MATERIALIZED VIEW 选项无效ORA-02244: 无效的Alter ROLLBACK SEGMENT 选项ORA-02245: 无效的ROLLBACK SEGMENT 名ORA-02246: 缺少EVENTS 文本ORA-02247: 未指定Alter SESSION 的选项ORA-02248: 无效的Alter SESSION 选项ORA-02249: 缺少或无效的MAXLOGMEMBERS 值ORA-02250: 缺少或无效的约束条件名ORA-02251: 此处不允许子查询ORA-02252: 检查未正确结束的约束条件ORA-02253: 此处不允许约束条件说明ORA-02254: 此处不允许DEFAULT <表达式>ORA-02255: obsolete 7.1.5ORA-02256: 要引用的列数必须与已引用道感数匹配ORA-02257: 超出最大列数ORA-02258: 重复或冲突的NULL 和(或)NOT NULL 说明ORA-02259: 重复的UNIQUE/PRIMARY KEY 说明ORA-02260: 表只能具有一个主键ORA-02261: 表中已存在这样的唯一关键字或主键ORA-02262: 对列默认值表达式进行类型检查时, 出现ORA- ORA-02263: 需要指定此列的数据类型ORA-02264: 名称已被一现有约束条件占用ORA-02265: 无法推导引用列的数据类型ORA-02266: 表中的唯一/主键被启用的外部关键字引用ORA-02267: 列类型与引用的列类型不兼容ORA-02268: 引用的表不具有主键ORA-02269: 关键字列不能是LONG 数据类型ORA-02270: 此列列表的唯一或主键不匹配ORA-02271: 表没有这样的约束条件ORA-02272: 约束条件列不能是LONG 数据类型ORA-02273: 此唯一/主键已被某些外部关键字引用ORA-02274: 重复的引用约束条件说明ORA-02275: 此表中已经存在这样的引用约束条件ORA-02276: 默认值类型与列类型不兼容ORA-02277: 无效的序列名ORA-02278: 重复或冲突的orDER/NOORDER 说明ORA-02279: 重复或冲突的orDER/NOORDER 说明ORA-02280: 重复或冲突的orDER/NOORDER 说明ORA-02281: 重复或冲突的orDER/NOORDER 说明ORA-02282: 重复或冲突的orDER/NOORDER 说明ORA-02283: 无法改变起始序号ORA-02284: 重复的INCREMENT BY 说明ORA-02285: 重复的START WITH 说明ORA-02286: 未指定Alter SEQUENCE 的选项ORA-02287: 此处不允许序号ORA-02288: 无效的OPEN 模式ORA-02289: 序列(号)不存在ORA-02290: 违反检查约束条件(.)ORA-02291: 违反完整约束条件(.) - 未找到父项关键字ORA-02292: 违反完整约束条件(.) - 已找到子记录日志ORA-02293: 无法验证(.) - 违反检查约束条件ORA-02294: 无法启用(.) - 约束条件在验证过程中更改ORA-02295: 找到约束条件的多个启用/禁用子句ORA-02296: 无法启用(.) - 找到空值ORA-02297: 无法禁用约束条件(.) - 存在依赖关系ORA-02298: 无法验证(.) - 未找到父项关键字ORA-02299: 无法验证(.) - 未找到重复关键字ORA-02300: 无效的OIDGENERATORS 值ORA-02301: OIDGENERATORS 的最大数为255ORA-02302: 无效或缺少类型名ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型ORA-02304: 无效的对象标识文字ORA-02305: 只有EXECUTE, DEBUG 和UNDER权限对类型有效ORA-02306: 无法创建已具有有效相关性的类型ORA-02307: 无法使用REPLACE 选项改变无效类型ORA-02308: 无效的对象类型列选项ORA-02309: 违反原子NULLORA-02310: 超出表中允许的最大列数ORA-02311: 无法使用COMPILE 选项改变具有类型或表相关性的有效类型ORA-02313: 对象类型包含不可查询的类型属性ORA-02315: 默认构造符的参数个数错误ORA-02320: 无法创建嵌套表列的存储表ORA-02322: 无法访问嵌套表列的访问表ORA-02324: THE 子查询的Select 列表中存在多列ORA-02327: 无法以数据类型的表达式创建索引ORA-02329: 数据类型的列不能是唯一关键字或主键ORA-02330: 不允许的数据类型说明ORA-02331: 无法创建数据类型为的列的约束条件ORA-02332: 无法对此列的属性创建索引ORA-02333: 无法对此列的属性创建约束条件ORA-02334: 无法推断列类型ORA-02335: 无效的群集列数据类型ORA-02336: 无法访问列属性ORA-02337: 不是对象类型列ORA-02338: 缺少或无效的列约束条件说明ORA-02339: 无效的列说明ORA-02340: 无效的列说明ORA-02342: 取代类型具有编译错误ORA-02344: 无法撤消执行具有表相关性的类型ORA-02345: 无法创建具有基于CURSOR 运算符的列的视图ORA-02347: 无法授权给对象表列ORA-02348: 无法创建具有嵌入LOB 的VARRAY 列ORA-02349: 无效的用户自定义类型- 类型不完整ORA-02351: 记录: 被拒绝- 表, 列上出错ORA-02352: 直接路径连接必须在同类间进行ORA-02353: 多字节字符错误ORA-02354: 字段中出现转换初始化错误ORA-02355: CONSTANT 字段中出现转换错误ORA-02356: 数据库空间耗尽。
list集合常用的方法
list集合常用的方法List集合常用的方法1. 创建List集合•使用方括号[]创建一个空的List集合:my_list = []•在方括号内使用逗号分隔不同的元素来创建一个有初始值的List 集合:my_list = [1, 2, 3, 4, 5]2. 访问List元素•使用索引访问List中的元素,索引从0开始计数:my_list[0]•使用负数索引可以从List的末尾开始倒数访问元素:my_list[-1](访问最后一个元素)3. 修改List元素•直接使用赋值语句修改List中的元素:my_list[0] = 64. 添加元素•使用append()方法在List末尾添加一个元素:my_(6)•使用insert()方法在指定索引位置插入一个元素:my_(2, 7)5. 删除元素•使用remove()方法根据值删除List中的元素:my_(5)•使用pop()方法根据索引删除List中的元素,并返回被删除的值:my_(0)•使用del关键字根据索引删除List中的元素:del my_list[0]6. List切片•使用切片操作符:可以获取List中的一个子集:my_list[1:4]•切片操作符也可以省略起始或结束索引,表示从开头或到末尾的所有元素:my_list[:3](前三个元素), my_list[2:](从第三个元素到末尾)7. 查询元素•使用in关键字可以判断一个元素是否存在于List中:5 in my_list8. List长度•使用len()函数可以返回List的长度(包含的元素个数):len(my_list)9. List排序•使用sort()方法可以对List进行原地排序:my_()•使用sorted()函数可以返回一个新的排序后的List,而不改变原来的List:sorted_list = sorted(my_list)10. List拼接•使用+运算符可以拼接两个List:combined_list = my_list + [8, 9, 10]以上是一些常见的List集合方法,掌握了这些基本的操作,可以更好地利用List来存储和处理数据。
Oracle数据库中建立索引的基本方法讲解
Oracle数据库中建⽴索引的基本⽅法讲解怎样建⽴最佳索引?1、明确地创建索引create index index_name on table_name(field_name)tablespace tablespace_namepctfree 5initrans 2maxtrans 255storage(minextents 1maxextents 16382pctincrease 0);2、创建基于函数的索引常⽤与UPPER、LOWER、TO_CHAR(date)等函数分类上,例:create index idx_func on emp(UPPER(ename)) tablespace tablespace_name;3、创建位图索引对基数较⼩,且基数相对稳定的列建⽴索引时,⾸先应该考虑位图索引,例:create bitmap index idx_bitm on class (classno) tablespace tablespace_name;4、明确地创建唯⼀索引可以⽤create unique index语句来创建唯⼀索引,例:create unique index dept_unique_idx on dept(dept_no) tablespace idx_1;5、创建与约束相关的索引可以⽤using index字句,为与unique和primary key约束相关的索引,例:alter table table_nameadd constraint PK_primary_keyname primary key(field_name)using index tablespace tablespace_name;如何创建局部区索引?1)基础表必须是分区表2)分区数量与基础表相同3)每个索引分区的⼦分区数量与相应的基础表分区相同4)基础表的⾃分区中的⾏的索引项,被存储在该索引的相应的⾃分区中,例如create index TG_CDR04_SERV_ID_IDX on TG_CDR04(SERV_ID)Pctfree 5Tablespace TBS_AK01_IDXStorage(MaxExtents 32768PctIncrease 0FreeLists 1FreeList Groups 1)local/如何创建范围分区的全局索引?基础表可以是全局表和分区表create index idx_start_date on tg_cdr01(start_date)global partition by range(start_date)(partition p01_idx vlaues less than ('0106')partition p01_idx vlaues less than ('0111')...partition p01_idx vlaues less than ('0401'))/如何重建现存的索引?重建现存的索引的当前时刻不会影响查询重建索引可以删除额外的数据块提⾼索引查询效率alter index idx_name rebuild nologging;对于分区索引alter index idx_name rebuild partition partition_name nologging;删除索引的原因?1)不再需要的索引2)索引没有针对其相关的表所发布的查询提供所期望的性能改善3)应⽤没有⽤该索引来查询数据4)该索引⽆效,必须在重建之前删除该索引5)该索引已经变的太碎了,必须在重建之前删除该索引语句:drop index idx_name;drop index idx_name partition partition_name;建⽴索引的代价?基础表维护时,系统要同时维护索引,不合理的索引将严重影响系统资源,主要表现在CPU和I/O上。
证券UF20系统数据归档步骤
证券UF20系统历史数据归档第一章归档目的 (2)**.分离历史查询 (2)**.减轻日常运维负担 (2)第二章归档步骤2**.数据归档前准备工作 (2)**.确认上一个工作日日终工作处理完成 (2)**.确认AS等中间件已经关闭 (2)**.确认数据库已经无其它数据库链接 (2)**.确认同步完成,并关闭同步工具 (2)**.备份HS_HIS历史数据 (2)**.确认备份日志无报错 (3)**.开始归档HS_HIS历史数据 (3)**.确认需要归档的历史表清单 (3)**.确认HS_HIS和FIL表结构一致 (3)**.确认归档的HIS大表是否全为分区表 (3)**.保存HS_FIL用户需要归的FIL表索引 (3)**.修复相关FIL表的数据 (6)**.生成INSERT脚本 (7)**.删除需要归的FIL表中对应的所有索引 (8)**.运行生成的Insert脚本 (8)**.检查比对HIS和FIL对应表的数据 (9)**.还原FIL表的索引,并改degree 为1 (9)**.删除HS_HIS已归档的数据 (9)**.删除HIS用户中已经归过档的数据 (9)**.收集HS_HIS和HS_FIL用户的分区表统计信息 (10)**.开启同步工具 (10)第三章注意事项10第一章归档目的1.1.分离历史查询将历史用户(HS_HIS)数据归至归档用户(HS_FIL)里,以减轻经营管理库的压力,提高清算时历史相关查询的效率。
1.2.减轻日常运维负担随着UF20系统历史数据量的日益增长,客户在备份与处理历史数据工作量越来越繁重。
历史数据轻量化,将有助于客户的日常备份恢复等运维操作。
第二章归档步骤2.1.数据归档前准备工作2.1.1.确认上一个工作日日终工作处理完成2.1.2.确认AS等中间件已经关闭2.1.3.确认数据库已经无其它数据库链接2.1.4.确认同步完成,并关闭同步工具确认DDS、DSG、DataGuard等同步工具同步完成,无数据加载,核对无误后关闭同步工具2.1.5.备份HS_HIS历史数据EXP备份脚本如下:expdp hs_his/pwd@xsjygldb directory=expdp dumpfile=hs_his20160914pre_%U.dmp schemas=hs_his logfile=hs_his20160914pre.log parallel=8 ESTIMATE =STATISTICS exclude=statistics2.1.6.确认备份日志无报错2.2.开始归档HS_HIS历史数据2.2.1.确认需要归档的历史表清单1)72张必归表参见附件《UF20建议归档表.xls》2)以及不在以上清单中的大表(例如bytes大于1G的表)select s.segment_name,sum(s.BYTES)/1024/1024 from user_segments s where s.segment_type like 'TABLE%' group by segment_name order by 2 desc2.2.2.确认HS_HIS和FIL表结构一致参见《表结构比对个数和顺序.tst》脚本内的表清单须根据实际情况调整⏹如果字段个数不一致,以HIS表为主,将FIL表更改到一致⏹如果字段顺序不一致,可以不调整(但如果此时FIL表为空表,可以考虑重建FIL表和HIS表顺序一致)。
详解pctused与pctfree
详解pctused与pctfree[收藏此页] [打印]作者:wxy0327 2006-06-27内容导航:第1页第1页:第1页【IT168 技术文档】pctused(percent used)与pctfree(percent free)是Oracle的两个与性能相关的块级存储参数。
虽然我很少修改它们,但是相应的概念还是比较重要的,所以强化一下。
概念:pctused:一个块的使用水位的百分比,这个水位将使该块返回到可用列表中去等待更多的插入操作。
pctfree:用来为一个块保留的空间百分比,以防止在今后的更新操作中增加一列或多列值的长度。
freelist:可用列表是表中的一组可插入数据的可用块。
行连接:指一行存储在多个块中的情况,这是因为该行的长度超过了一个块的可用空间大小,即行链接是跨越多块的行。
行迁移:指一个数据行不适合放入当前块而被重新定位到另一个块(那里有充足的空间)中,但在原始块中保留一个指针的情形。
原始块中的指针是必需的,因为索引的ROWID项仍然指向原始位置。
计算公式:PCTFREE=(Average Row Size-Initial Row Size)*100/Average Row Size PCTUSED=(100-PCTFREE) -Average Row Size * 100/Availabe Data SpaceOracle的其中一个优点时它可以管理每个表空间中的自由空间。
Oracle负责处理表和索引的空间管理,这样就可以让我们无需懂得Oracle的表和索引的内部运作。
不过,对于有经验的Oracle调优专家来说,他需要懂得Oracle是如何管理表的extent和空闲的数据块。
对于调整拥有高的insert或者update的系统来说,这是非常重要的。
要精通对象的调整,你需要懂得freelists和freelist组的行为,它们和pctfree及pctused参数的值有关。
这些知识对于企业资源计划(ERP)的应用是特别重要的,因为在这些应用中,不正确的表设置通常是DML语句执行慢的原因。
Tuning简介
Tuning简介典型的不好的设计: 破坏了系统的可扩展性(韧性)Applications requiring significant concurrency management as user populations increaseIncreased locking activitiesIncreased data consistency workloadIncreased operating system workloadTransactions requiring increases in data access as data volumes increasePoor SQL and index design resulting in a higher number of logical I/Os for the same number of rows returnedReduced availability, because database objects take longer to maintainApplication Design Principlestable: 的设计, ⼀般是要满⾜3范式, 但是出于性能的考虑, 有时候违背范式另外要特别关注也些业务⼗分重要的table的逻辑关系.index: ⾸先创建表时, 建议根据主键建⽴索引.另外, 再增加索引时, 需要考虑以下⼏个⽅⾯:1. 为列增加索引, 还是直接使⽤索引组织表?2. 使⽤不同类型的索引3. 考虑增加索引后的开销4. 在sequence 或 timestamp上创建索引, 可能带来问题5. 在索引中列的顺序Top Ten Mistakes Found in Oracle Systems1. Bad connection management2. Bad use of cursors and the shared pool3. Bad SQL4. Use of nonstandard initialization parameters5. Getting database I/O wrong6. Online redo log setup problems (Many sites run with too few online redo log files and files that are too small. ) small redo log files cause system checkpoints to continuously put a high load on the buffer cache and I/O system.7. Serialization of data blocks in the buffer cache due to lack of free lists, free list groups, transaction slots (INITRANS), or shortage of rollback segments This is particularly common on INSERT-heavy applications, ASSM 和 auto undo management 可以解决这个问题8. Long full table scans9. High amounts of recursive (SYS) SQL Large amounts of recursive SQL executed by SYS could indicate space management activities, Use locally managed tablespaces to reduce recursive SQL due to extent allocation.10.Deployment and migration errors。
list类函数
list类函数List类函数是编程中常用的一种数据结构,它可以存储多个元素,并且可以根据需要进行增删改查操作。
在本文中,我将介绍几个常用的List类函数,并详细解释它们的功能和用法。
一、append函数append函数用于在List的末尾添加一个元素。
例如,如果我们有一个List存储了几个数字,我们可以使用append函数在List末尾添加一个新的数字。
二、insert函数insert函数用于在List的指定位置插入一个元素。
该函数接受两个参数,第一个参数是要插入的位置,第二个参数是要插入的元素。
三、remove函数remove函数用于从List中删除指定的元素。
该函数接受一个参数,即要删除的元素。
如果List中有多个相同的元素,remove函数只会删除第一个匹配的元素。
四、pop函数pop函数用于从List中删除指定索引位置的元素,并返回被删除的元素。
该函数接受一个参数,即要删除的元素的索引位置。
如果不指定索引位置,默认删除最后一个元素。
五、sort函数sort函数用于对List中的元素进行排序。
该函数可以接受多个参数,用于指定排序的方式。
默认情况下,sort函数按照元素的大小进行升序排序。
六、reverse函数reverse函数用于将List中的元素逆序排列。
该函数不接受任何参数。
七、index函数index函数用于返回List中指定元素的索引位置。
该函数接受一个参数,即要查找的元素。
如果List中有多个相同的元素,index函数只会返回第一个匹配的元素的索引位置。
八、count函数count函数用于返回List中指定元素的个数。
该函数接受一个参数,即要统计的元素。
九、len函数len函数用于返回List中元素的个数。
该函数不接受任何参数。
以上就是几个常用的List类函数的介绍,它们在编程中非常有用,能够帮助我们更方便地对List进行操作和处理。
当然,除了这些函数之外,还有很多其他的List类函数可以使用,需要根据实际的需求选择适合的函数。
公司办公自动化系统的开发
目录1 概述 (1)2 系统开发工具及数据库 (1)2.1开发工具的选择 (1)2.2数据库的选择 (1)3 邮件模块分析 (1)4 邮件模块的设计与实现 (2)4.1邮件的发送 (2)4.2邮件的发送操作流程 (3)4.2.1 发送邮件 (3)4.2.2 未发送,保存到草稿箱 (3)4.3邮件的查看 (3)4.3.1 登陆成功时 (4)4.3.2 查看邮件时 (4)4.3.3 查看已删除邮件时 (4)4.4管理邮件 (5)4.5邮件通讯录 (5)4.5.1 打开通讯录时 (6)4.5.2 新建分组 (6)4.5.3 新建联系人 (6)4.5.4 选择分组 (6)4.6邮箱模块主要功能 (6)4.6.1 邮件模块主页面 (6)4.6.2 写邮件 (8)4.6.3 阅读邮件 (9)5 系统测试 (9)5.1发送邮件测试 (9)5.1.1 对单个用户的发送(带有图片附件) (9)5.1.2 对多个用户的群发 (10)5.2管理邮件测试 (11)5.2.1 全选并删除邮件 (11)5.2.2 永久删除邮件 (12)5.2.3 移动邮件 (12)5.3邮件查看 (13)5.3.1 点击邮件主题(链接文字变红) (13)5.3.2 阅读邮件界面 (13)5.3.3 下载附件 (14)5.4通讯录管理 (14)5.4.1 新建联系人 (14)5.4.2 删除联系人 (15)5.4.3 删除分组 (15)参考文献 (16)附录 (16)2公司办公自动化系统的开发1概述舞阳钢铁公司办公自动化系统,采用Internet/Intranet的建设原则,在开放,实用,稳定,安全的基本网络平台基础上,使用B/S系统架构来构造单位内部的信息管理系统+ Fremework 加上IIS的支持。
解决了C/S模式的局限性,如数据更新、软件的升级等问题。
客户端采用浏览器模式使信息管理系统的易用性更强,客户端不需要安装专用的客户端软件,使整个系统的管理维护工作大量减少。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
刚才Debbie问什么是freelists,我直接copy老盖的文章了,不过发现竟然是张乐奕写的!也是一个大牛啊,不过被老盖收到自己麾下了。
N多大牛被老盖收了,不得不说这是老盖超越众多更牛DBA比较IN的地方。
一.什么是freelists本文在于探讨Freelists和Freelist Groups的作用,存取机制,争用诊断和优化方法,同时通过理论和测试来推翻一些存在了很久的错误观点。
本文的读者应该具有较深入的Oracle知识,对于一般的开发人员这篇文章可能并没有太多的帮助。
我们知道Oracle数据库的读取单位是数据块(Block),而一个Block是否允许被写入数据是基于一定的空闲度,这就是大家知道的pctfree和pctused存储参数设置。
假设pctfree=10, pctused=40,这就表明当一个Block的空间使用率达到了90%(100-pctfree)时,这个block就不再允许被用于新增数据(insert),而保留下来的这10%的空间则被预留为行更新(update)所可能需要的空间扩展,我们说此时这个block就从freelist上被摘走了(实际上还有另外一种情况,就是当块剩余空间不足以插入一条记录并且该块的使用率已经超过了pctused定义的值并且该块位于freelist header处时,该块也会从freelist上被摘走,术语称为UNLINK)。
当有数据删除(delete)的时候,只有该block中的数据被删除到一定的程度,该块才会重新被加入到freelists中,而这个程度就是pctused参数定义的数值,如我们这个例子中,只有块中的数据降低到40%以下的时候,该块才被重新允许用于新增数据。
通过上面的描述,可以知道所谓freelists,就是一个指定了所有可以用于insert操作的数据块的列表。
存在在这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了pctfree参数指定的限度)则立刻从这个列表中被摘除。
freelists的作用就在于管理高水位标志(HWM)以下的空闲空间。
注意:freelists只是管理高水位标志以下的空闲空间,而实际上一个segment可用的空闲空间包括两种类型:1.已经分配给这个segment但是从来未被使用过的位于高水位标志之上的blocks2.位于高水位标志之下,被链接在freelists上的blocks至于freelist groups的概念和作用,在下面的章节适当的地方会解释。
二.freelists是否已经过时随着Oracle9i的推出,对于空闲块的管理变得更加智能和有效率了。
在LMT(Locally Managed Tablespaces)中如果指定了ASSM(Automatic Segment Space Management),那么对于任何pctused,freelists,freelist groups存储参数的指定都将被忽略。
创建ASSM表空间的方法如下:CREATE TABLESPACE lmtbsb DATAFILE '/u02/oracle/data/lmtbsb01.dbf' SIZE 50MEXTENT MANAGEMENT LOCALSEGMENT SPACE MANAGEMENT AUTO;ASSM得益于使用位图(bitmaps)来管理段中的空闲块,至于具体是如何管理的,那又是另外一篇文章了。
就此意义上来说,对于freelists的探讨确实可能已经有些过时了,但是首先并不是所有的数据库现在都已经升级到了Oracle9i,甚至在最需要调整的一些大型应用上往往都由于业务的稳定性而不愿意冒升级到新版本的危险;其次即使是新的应用使用了Oracle9i数据库,如果数据库管理员在创建表空间的时候没有明确指定SEGMENT SPACE MANAGEMENT AUTO,那么默认情况下仍然会使用Freelists和Freelist Groups来管理Free Block。
所以,在仍然存在有大量Oracle8i数据库和非自动段空间管理表空间的现在,对于freelists的研究仍然具有很实际的意义,而由于默认的freelists和freelist groups又都只有1,所以又恰恰是高负载的应用中最需要调整(Tuning)的部分之一。
三.freelists存储在哪儿freelists存储在每个segment的header block中,我们可以通过dump来得到更清楚的认识。
dump 在研究oracle的内部机制时通常都扮演着很重要的角色。
假设我们创建一个表空间TS_TEST,此表空间是非自动段空间管理的,然后在该表空间中创建T_MANUAL,T_MANUAL_FREE2,T_MANUAL_FREEGROUP2三张表。
这三张表的freelists和freelist groups设置如下。
SQL> select SEGMENT_NAME,SEGMENT_TYPE,FREELISTS,FREELIST_GROUPS from USER_SEGMENTS where TABLESPACE_NAME='TS_TEST';SEGMENT_NAME SEGMENT_TYPE FREELISTS FREELIST_GROUPS-------------------- ------------------ ---------- ---------------T_MANUAL TABLE 1 1T_MANUAL_FREE2 TABLE 2 1T_MANUAL_FREEGROUP2 TABLE 4 2则可以参照下面的方法对segment header block进行dump操作。
首先先从数据字典中得到存储这个segment的文件号和此segment的第一个block号(也就是segment header block)SQL> select FILE_ID,BLOCK_ID from dba_extents where segment_name='T_MANUAL';FILE_ID BLOCK_ID---------- ----------7 9使用dump命令转储这个block的内容,转储的结果将保存在初始化参数user_dump_dest指定的目录中。
SQL> alter system dump datafile 7 block 9;System altered查看user_dump_dest目录中的相应trace文件,我们可以看到包含如下几行:frmt: 0x02 chkval: 0x0000 type: 0x10=DATA SEGMENT HEADER - UNLIMITED表示这个block正是segment header block。
#blocks in seg. hdr's freelists: 2#blocks below: 2表示位于freelist中的数据块有2个,在高水位标志(HWM)下的数据块也有2个。
SEG LST:: flg: USED lhd: 0x01c0000a ltl: 0x01c0000b由于我们dump的是TS_MANUAL表的header block,而这张表的freelists=1,所以在dump文件中看到只有一个seg lst,这个freelist被称为segment free list或者master free list,每个segment都至少有一个而且只有一个master free list(当然是在非自动段空间管理类型下)。
flg(flag)表示该freelist是否被使用lhd(list header)表示位于该list中的第一个可用block的dba(Data block address)ltl(list tail)表示位于该list中的最后一个可用block的dba,这个block必定位于HWM之下。
此时我们可以发现freelists只是记录了这个segment中空闲块的第一个块地址和最后一个块地址,在第一个空闲块的块头处(block header)记录了它之后的下一个空闲块的地址,而下一个空闲块又记录了再下一个空闲块的地址,由此依次记录,一直到最后一个空闲块。
Oracle通过这种链表的方式实现了freelists对于空闲块的管理。
注意:每次当一个block被加入到free list中时,该block会被放置在free list的链表头部。
同样我们可以dump第一个空闲块来验证上面的链表说法。
比如在lhd部分记录的dba是0x01c0000a,这是一个16进制的数,首先转化为10进制,于是得到29360138。
然后通过oracle提供的两个函数将块地址转化为可以供我们使用的文件号和块号,以便于我们进行dump操作。
SQL> select dbms_utility.data_block_address_file(29360138) from dual;DBMS_UTILITY.DATA_BLOCK_ADDRES------------------------------7SQL> select dbms_utility.data_block_address_block(29360138) from dual;DBMS_UTILITY.DATA_BLOCK_ADDRES------------------------------10现在我们已经得到第一个空闲块是7号文件的10号块。
用前面提到的转储命令dump这个块的内容,我们可以找到下面的内容:fnx: 0x1c0000b表示下一个可用的块地址是0x1c0000b,在我们的例子这个块正好是可用的最后一个块(segment header block中的lhd部分),我们可以再次dump这个0x1c0000b块,同样查看转储的结果,找到下面的内容:fnx: 0x00x0表示下面没有可用的空闲块了,也就是表明这是freelists中的最后一个空闲块。
注意:你们的测试可能得到跟我不一样的转储内容,这是正常的。
一.有多少种free list1.master free list或者segment free list简称为MFL,在segment被创建的时候自动生成的,如果我们在创建segment时没有指定freelists参数,或者指定freelists=1,都是生成这个MFL。
MFL对于每个segment来说有且只有一个(如果指定freelists>1,产生的就是不是MFL,这一点将在process free list部分解释)。