Oracle的同义词(synonyms)总结
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系。本文介绍如何创建同义词语句,删除同义词以及查看同义词语句。[@more@] oracle的同义词总结: 从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。 1.创建同义词语句: create public synonym table_name for user.table_name; 其中第一个user_table和第二个user_table可以不一样。 此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后在使用如
[转]oracle SQL调优 之 连接方式
无论连接操作符如何,典型的连接类型共有3种:排序 - - 合并连接(Sort Merge Join (SMJ) )嵌套循环(Nested Loops (NL) )哈希连接(Hash Join)[@more@]排序 - - 合并连接(Sort Merge Join, SMJ)内部连接过程:1) 首先生成row source1需要的数据,然后对这些数据按照连接操作关联列(如A.col3)进行排序。2) 随后生成row source2需要的数据,然后对这些数据按照与sort source1对应的连接操作关联列(如B.col4)进行排序。3) 最后两边已排序的行被放在一起执行合并操作,即将2个row source按照连接条件连接起来下面是连接步骤的图形表示:MERGE/ S
修改oracle的edit编辑工具为vi
修改oracle的edit编辑工具为vi[@more@]原默认oracle默认的edit编辑工具为notepad,如果要修改为vi,则方法为:$ORCEL_HOME/sqlplus/admin/glogin.sql增加一行:DEFINE_EDITOR=vi 另:将LINIX终端默认的编辑工具改为vi则在*.profile文件里增加:set -o vi
ORACLE常用数据字典
数据字典视图说明:数据字典视图一般有:以存表的视图为例dba_tables[DBA所有的], all_tables[所有用户所有的], user_tables[当前用户所有的]对于DBA所有的,只有拥有DBA权限的用户才可以查询,否则提示表或视图不存在。系统表内的数据基本都是大写,如表明,列名,所有者,源代码除外。三套[@more@]下面的示例都已all系列为代表 数据字典视图名 作用 示例 all_tables/dba_tables/user_tables 查看系统或某个用户有哪些表 select * from user_tableswhere table_name = 'EMP' all_tab_columns/dba_tab_columns/user_tab_columns 查看表的数
查看Oracle数据库表空间大小,是否需要增加表空间的数据文件
查看Oracle数据库表空间大小,是否需要增加表空间的数据文件[@more@]--1查看表空间已经使用的百分比select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"from(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tables
查看object的script的function:dbms_metadata.get_ddl()
SQL> select dbms_metadata.get_ddl('TABLE','T') from dual 2 /DBMS_METADATA.GET_DDL('TABLE','T')--------------------------------------------------------------------- CREATE TABLE "PROC"."T" ( "TS" TIMESTAMP (6), "TS_TZ" TIMESTAMP (6) WIT已用时间: 00: 00: 07.26SQL>[@more@]
使用校验方法控制lock
校验函数:dbms_crypto.hash[@more@] 1 begin 2 for x in( select deptno,dname,loc from dept where deptno = 10) 3 loop 4 dbms_output.put_line('Dname: '||x.dname); 5 dbms_output.put_line('dname: '||x.dname); 6 dbms_output.put_line('Hash: '||dbms_crypto.hash(utl_raw.cast_to_raw(x.deptno||'/'||x.dname||'/'||x.loc),dbms_crypto.hash_sh1)); 7 end loop; 8* end;SQL> /PL/SQL 过程已成功完成。已用时间: 00: 00: 00.53SQL> set serveroutput onSQL>
使用Flashback Query恢复误删除数据
误删除了部分重要数据,并且已经提交,需要恢复。这该怎么办?首先尝试使用flashback query闪回数据。首先确认数据库的SCN变化:[@more@]sys@CCDB> col fscn for 9999999999999999sys@CCDB> col nscn for 9999999999999999sys@CCDB> select name,first_change# fscn,next_change# nscn,first_time from v$archived_Log where status = 'A';NAME FSCN NSCN FIRST_TIME--------------------------------------------------- ----------- ----------- --------------