触发器:
select?trigger_name,trigger_type,table_owner,table_name,status?from?user_triggers;
快照:
select?owner,name,master,table_name,last_refresh,next?from?user_snapshots?order?by?owner,next;
同义词:
select?*?from?syn;
序列:
select?*?from?seq;
数据库链路:
select?*?from?user_db_links;
约束限制:
select?TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS?from?user_constraints;
本用户读取其他用户对象的权限:
select?*?from?user_tab_privs;
本用户所拥有的系统权限:
select?*?from?user_sys_privs;
用户:
select?*?from?all_users?order?by?user_id;
表空间剩余自由空间情况:
select?tablespace_name,sum(bytes)?总字节数,max(bytes),count(*)?from?dba_free_space?group?by?tablespace_name;
数据字典:
select?table_name?from?dict?order?by?table_name;
锁及资源信息:
select?*?from?v$lock;不包括DDL锁
数据库字符集:
select?name,value$?from?props$?where?name='NLS_CHARACTERSET';
inin.ora参数:
select?name,value?from?v$parameter?order?by?name;
SQL共享池:
select?sql_text?from?v$sqlarea;
数据库:
select?*?from?v$database
控制文件:
select?*?from?V$controlfile;
重做日志文件信息:
select?*?from?V$logfile;
来自控制文件中的日志文件信息:
select?*?from?V$log;
来自控制文件中的数据文件信息:
select?*?from?V$datafile;
NLS参数当前值:
select?*?from?V$nls_parameters;
ORACLE版本信息:
select?*?from?v$version;
描述后台进程:
select?*?from?v$bgprocess;
查看版本信息:
select?*?from?product_component_version;
7.如何在PL/SQL中读写文件??
软件环境:?
1、服务器端:Windows?NT4.0+ORACLE?8.0.4
2、ORACLE安装路径为:C:/ORANT?
实现方法:?
PL/SQL?3.3以上的版本中,UTL_FILE包允许用户通过PL/SQL读写操作系统文件。如下:?
declare
file_handle?UTL_FILE.FILE_TYPE;
begin
file_handle?:=?UTL_FILE.FOPEN('/tmp',?'文件名',?'w');
UTL_FILE.PUTF(file_handle,?'写入的信息/n');
UTL_FILE.FCLOSE(file_handle);
exception
WHEN?utl_file.invalid_path?THEN
raise_application_error(-20000,?'ERROR:?Invalid?path?for?file?or?path?not?in?INIT.ORA.');
end;?
PutF()过程用来以指定格式把文本写入一个文件
Put_Line()过程把一个指定的字符串写入文件并在文件中开始新的一行
8.怎样计算表中的记录数??
系统环境:?
1、操作系统:Windows?2000
2、数据库: Oracle?8i?R2?(8.1.6)?for?NT?企业版
3、安装路径:C:/ORACLE
实现方法:?
查看当前用户下有什么对象(表、视图、同义词、快照)
SQL>?select?*?from?tab;
查看表结构
SQL>?desc?表名
查看表中记录数
SQL>?select?count(*)?from?表名;
SQL>?select?count(rowid)?from?表名;
9.怎样查看表的结构??
系统环境:?
1、操作系统:Windows?2000
2、数据库: Oracle?8i?R2?(8.1.6)?for?NT?企业版
3、安装路径:C:/ORACLE
实现方法:?
查看当前用户下有什么对象(表、视图、同义词、快照)
SQL>?select?*?from?tab;
查看表结构
SQL>?describe?表名
简写以上命令
SQL>?desc?表名
10.如何用SQL生成SQL批处理文件??
软件环境:?
1、Windows?NT4.0+ORACLE?8.0.4
2、ORACLE安装路径为:C:/ORANT
问题提出:?
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:?
SQL>?set?heading?off?--禁止输出列标题
SQL>?set?feedback?off?--禁止显示最后一行的计数反馈信息
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select?'desc?'||tname?from?tab?where?tabtype='SYNONYM';
查询当前用户下所有表的记录数
select?'select?'''||tname||''',count(*)?from?'||tname||';'?from?tab?where?tabtype='TABLE';
把所有符合条件的表的select权限授予为public
select?'grant?select?on?'||table_name||'?to?public;'?from?user_tables?where?《条件》;
删除用户下各种对象
select?'drop?'||tabtype||'?'||tname?from?tab;
删除符合条件用户
select?'drop?user?'||username||'?cascade;'?from?all_users?where?user_id>25;
快速编译所有视图?
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
----因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。?
SQL>?SPOOL?ON.SQL
SQL>?SELECT'ALTER?VIEW?'||TNAME||'?COMPILE;'?FROM?TAB;
SQL>?SPOOL?OFF
然后执行ON.SQL即可。
SQL>?@ON.SQL
当然,授权和创建同义词也可以快速进行,如:
SQL>?SELECT?'GRANT?SELECT?ON?'||TNAME||'?TO?用户名;'?FROM?TAB;
SQL>?SELECT?'CREATE?SYNONYM?'||TNAME||'?FOR?用户名.'||TNAME||';'?FROM?TAB;
select?trigger_name,trigger_type,table_owner,table_name,status?from?user_triggers;
快照:
select?owner,name,master,table_name,last_refresh,next?from?user_snapshots?order?by?owner,next;
同义词:
select?*?from?syn;
序列:
select?*?from?seq;
数据库链路:
select?*?from?user_db_links;
约束限制:
select?TABLE_NAME,CONSTRAINT_NAME,SEARCH_CONDITION,STATUS?from?user_constraints;
本用户读取其他用户对象的权限:
select?*?from?user_tab_privs;
本用户所拥有的系统权限:
select?*?from?user_sys_privs;
用户:
select?*?from?all_users?order?by?user_id;
表空间剩余自由空间情况:
select?tablespace_name,sum(bytes)?总字节数,max(bytes),count(*)?from?dba_free_space?group?by?tablespace_name;
数据字典:
select?table_name?from?dict?order?by?table_name;
锁及资源信息:
select?*?from?v$lock;不包括DDL锁
数据库字符集:
select?name,value$?from?props$?where?name='NLS_CHARACTERSET';
inin.ora参数:
select?name,value?from?v$parameter?order?by?name;
SQL共享池:
select?sql_text?from?v$sqlarea;
数据库:
select?*?from?v$database
控制文件:
select?*?from?V$controlfile;
重做日志文件信息:
select?*?from?V$logfile;
来自控制文件中的日志文件信息:
select?*?from?V$log;
来自控制文件中的数据文件信息:
select?*?from?V$datafile;
NLS参数当前值:
select?*?from?V$nls_parameters;
ORACLE版本信息:
select?*?from?v$version;
描述后台进程:
select?*?from?v$bgprocess;
查看版本信息:
select?*?from?product_component_version;
7.如何在PL/SQL中读写文件??
软件环境:?
1、服务器端:Windows?NT4.0+ORACLE?8.0.4
2、ORACLE安装路径为:C:/ORANT?
实现方法:?
PL/SQL?3.3以上的版本中,UTL_FILE包允许用户通过PL/SQL读写操作系统文件。如下:?
declare
file_handle?UTL_FILE.FILE_TYPE;
begin
file_handle?:=?UTL_FILE.FOPEN('/tmp',?'文件名',?'w');
UTL_FILE.PUTF(file_handle,?'写入的信息/n');
UTL_FILE.FCLOSE(file_handle);
exception
WHEN?utl_file.invalid_path?THEN
raise_application_error(-20000,?'ERROR:?Invalid?path?for?file?or?path?not?in?INIT.ORA.');
end;?
PutF()过程用来以指定格式把文本写入一个文件
Put_Line()过程把一个指定的字符串写入文件并在文件中开始新的一行
8.怎样计算表中的记录数??
系统环境:?
1、操作系统:Windows?2000
2、数据库: Oracle?8i?R2?(8.1.6)?for?NT?企业版
3、安装路径:C:/ORACLE
实现方法:?
查看当前用户下有什么对象(表、视图、同义词、快照)
SQL>?select?*?from?tab;
查看表结构
SQL>?desc?表名
查看表中记录数
SQL>?select?count(*)?from?表名;
SQL>?select?count(rowid)?from?表名;
9.怎样查看表的结构??
系统环境:?
1、操作系统:Windows?2000
2、数据库: Oracle?8i?R2?(8.1.6)?for?NT?企业版
3、安装路径:C:/ORACLE
实现方法:?
查看当前用户下有什么对象(表、视图、同义词、快照)
SQL>?select?*?from?tab;
查看表结构
SQL>?describe?表名
简写以上命令
SQL>?desc?表名
10.如何用SQL生成SQL批处理文件??
软件环境:?
1、Windows?NT4.0+ORACLE?8.0.4
2、ORACLE安装路径为:C:/ORANT
问题提出:?
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:?
SQL>?set?heading?off?--禁止输出列标题
SQL>?set?feedback?off?--禁止显示最后一行的计数反馈信息
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select?'desc?'||tname?from?tab?where?tabtype='SYNONYM';
查询当前用户下所有表的记录数
select?'select?'''||tname||''',count(*)?from?'||tname||';'?from?tab?where?tabtype='TABLE';
把所有符合条件的表的select权限授予为public
select?'grant?select?on?'||table_name||'?to?public;'?from?user_tables?where?《条件》;
删除用户下各种对象
select?'drop?'||tabtype||'?'||tname?from?tab;
删除符合条件用户
select?'drop?user?'||username||'?cascade;'?from?all_users?where?user_id>25;
快速编译所有视图?
----当在把数据库倒入到新的服务器上后(数据库重建),需要将视图重新编译一遍,
----因为该表空间视图到其它表空间的表的连接会出现问题,可以利用PL/SQL的语言特性,快速编译。?
SQL>?SPOOL?ON.SQL
SQL>?SELECT'ALTER?VIEW?'||TNAME||'?COMPILE;'?FROM?TAB;
SQL>?SPOOL?OFF
然后执行ON.SQL即可。
SQL>?@ON.SQL
当然,授权和创建同义词也可以快速进行,如:
SQL>?SELECT?'GRANT?SELECT?ON?'||TNAME||'?TO?用户名;'?FROM?TAB;
SQL>?SELECT?'CREATE?SYNONYM?'||TNAME||'?FOR?用户名.'||TNAME||';'?FROM?TAB;