2008年10月5日
SQL*Plus系统环境变量有哪些?如何修改?
软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT
实现方法:
show和set命令是两条用于维护SQL*Plus系统变量的命令
SQL> show all --查看所有68个系统变量值
SQL> show user --显示当前连接用户
SQL> show error --显示错误
SQL> set heading off --禁止输出列标题,默认值为ON
SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"
SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能
SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "
SQL> set linesize 1000 --设置屏幕显示行宽,默认100
SQL> set autocommit ON --设置是否自动提交,默认为OFF
SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页
SQL> set arraysize 1 --默认为15
SQL> set long 1000 --默认为80
说明:
long值默认为80,设置1000是为了显示更多的内容,因为很多数据字典视图中用到了long数据类型,如:
SQL> desc user_views
列名 可空值否 类型
------------------------------- -------- ----
VIEW_NAME NOT NULL VARCHAR2(30)
TEXT_LENGTH NUMBER
TEXT LONG
SQL> define a = '''20000101 12:01:01''' --定义局部变量,如果想用一个类似在各种显示中所包括的回车那样的常量,
--可以用define命令来设置
SQL> select &a from dual;
原值 1: select &a from dual
新值 1: select '20000101 12:01:01' from dual
'2000010112:01:01
-----------------
20000101 12:01:01
问题提出:
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;
SQL*PLUS常用命令列表
[ 天堂之水 2002年9月18日,阅读人数36人 ]
软件环境:
1、Windows 98 第二版
2、Oracle数据库版本为:Personal Oracle7 Release 7.3.4.0.0
3、Oracle安装路径为:C:\ORAWIN95
命令列表:
假设当前执行命令为:select * from tab;
(a)ppend 添加文本到缓冲区当前行尾 a order by tname 结果:select * from tab order by tname;
(注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;
(c)hange/text 从当前行删除文本 c/tab 结果:select tname from ;
del 删除当前行
del n 删除第n行
(i)nput 文本 在当前行之后添加一行
(l)ist 显示缓冲区中所有行
(l)ist n 显示缓冲区中第 n 行
(l)ist m n 显示缓冲区中 m 到 n 行
run 执行当前缓冲区的命令
/ 执行当前缓冲区的命令
r 执行当前缓冲区的命令
@文件名 运行调入内存的sql文件,如:
SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“select * from tab;”,存盘退出。
SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。
@@文件名 在.sql文件中调用令一个.sql文件时使用
save 文件名 将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名 调入存盘的sql文件
start 文件名 运行调入内存的sql文件
spool 文件名 把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool 显示当前的“假脱机”状态
spool off 停止输出
例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机
exit 退出SQL*PLUS
desc 表名 显示表的结构
show user 显示当前连接用户
show error 显示错误
show all 显示所有68个系统变量值
edit 打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
edit 文件名 把当前目录中指定的.sql文件调入编辑器进行编辑
clear screen 清空当前屏幕显示
SQL> show all
appinfo 为 OFF 并且已设置为 "SQL*Plus"
arraysize 15
autocommit OFF
autoprint OFF
autorecovery OFF
autotrace ON EXPLAIN STATISTICS
blockterminator "." (hex 2e)
btitle OFF 为下一条 SELECT 语句的前几个字符
cmdsep OFF
colsep " "
compatibility version NATIVE
concat "." (hex 2e)
copycommit 0
COPYTYPECHECK 为 ON
define "&" (hex 26)
describe DEPTH 1 LINENUM OFF INDENT ON
echo OFF
editfile "afiedt.buf"
embedded OFF
escape OFF
用于 6 或更多行的 FEEDBACK ON
flagger OFF
flush ON
heading ON
headsep "|" (hex 7c)
instance "local"
linesize 80
lno 14
loboffset 1
logsource ""
long 80
longchunksize 80
markup HTML OFF HEAD "<style type='text/css'> body {font:10pt Arial,Helvetica,sa
ns-serif; color:black; background:White;} p {font:10pt Arial,Helvetica,sans-seri
f; color:black; background:White;} table,tr,td {font:10pt Arial,Helvetica,sans-s
erif; color:Black; background:#f7f7e7; padding:0px 0px 0px 0px; margin:0px 0px 0
px 0px;} th {font:bold 10pt Arial,Helvetica,sans-serif; color:#336699; backgroun
d:#cccc99; padding:0px 0px 0px 0px;} h1 {font:16pt Arial,Helvetica,Geneva,sans-s
erif; color:#336699; background-color:White; border-bottom:1px solid #cccc99; ma
rgin-top:0pt; margin-bottom:0pt; padding:0px 0px 0px 0px;} h2 {font:bold 10pt Ar
ial,Helvetica,Geneva,sans-serif; color:#336699; background-color:White; margin-t
op:4pt; margin-bottom:0pt;} a {font:9pt Arial,Helvetica,sans-serif; color:#66330
0; background:#ffffff; margin-top:0pt; margin-bottom:0pt; vertical-align:top;}</
style><title>SQL*Plus Report</title>" BODY "" TABLE "border='1' width='90%' alig
n='center' summary='Script output'" SPOOL OFF ENTMAP ON PREFORMAT OFF
newpage 1
null ""
numformat ""
numwidth 10
pagesize 14
PAUSE 为 OFF
pno 0
recsep WRAP
recsepchar " " (hex 20)
release 1002000100
repfooter OFF 为 NULL
repheader OFF 为 NULL
serveroutput OFF
shiftinout INVISIBLE
showmode OFF
spool OFF
sqlblanklines OFF
sqlcase MIXED
sqlcode 0
sqlcontinue "> "
sqlnumber ON
sqlpluscompatibility 10.2.0
sqlprefix "#" (hex 23)
sqlprompt "SQL> "
sqlterminator ";" (hex 3b)
suffix "sql"
tab ON
termout ON
timing ON
trimout ON
trimspool OFF
ttitle OFF 为下一条 SELECT 语句的前几个字符
underline "-" (hex 2d)
USER 为 "ITMP"
verify ON
wrap : 将换至下一行
SQL>
1.port 被占用了
360看看 kill掉
ps -ax
netstat -an
2. host 主机解析出了问题 linux 上
[oracle@oracle bin]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.2.50 oracle oracle
[oracle@oracle bin]$
3. 安装oracle 创库的时候 往往会自动的 创立一个监听器..
比如一台机器上有2个库 ....那么很可能有2个监听器.... listener 1521
NL-00853: undefined command "ls". Try "help"
LSNRCTL> start
Starting /opt/app/oracle/product/10.2.0/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Log messages written to /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 01-DEC-2009 20:11:55
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Listener Log File /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
LSNRCTL>
LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 01-DEC-2009 20:11:55
Uptime 0 days 0 hr. 2 min. 38 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/app/oracle/product/10.2.0/network/admin/listener.ora
Listener Log File /opt/app/oracle/product/10.2.0/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "idmp" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
Service "idmpXDB" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
Service "idmp_XPT" has 1 instance(s).
Instance "idmp", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL>
CREATE OR REPLACE FUNCTION get_hash_val (p_in VARCHAR2)
RETURN VARCHAR2
IS
l_hash VARCHAR2 (6000);
BEGIN
l_hash :=RAWTOHEX(UTL_RAW.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.md5 (input_string=> p_in)));
RETURN l_hash;
END;
在 System.Collections.ArrayList.ToArray(Type type)
在 log4net.Appender.MemoryAppender.GetEvents()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
lock (MemoryAppender){
MemoryAppender.GetEvents()
MemoryAppender.clear()
}
TMD 到底什么是异常
程序按照预期的流程运行..正常态
出现未预计到的情况..比如网线断了gddg...文件打开失败...
这个时候 程序是继续执行 还是 其他的选择 或者 退出app ....
实际的情况是 有可能可以恢复,从业务角度出发..我可以重新试图连接...可以重新打开文件或者换一个文件 或者重新创建一个新的文件....
只要不是致命的问题..通常是可以恢复的...没必要退出app...
如果你不捕获 网络断开或者文件无法打开的 异常 ...那么为什么程序退出了呢...因为你没有告诉你的程序 如果出错了应该怎么办...sun 规避风险,你出错了,可能下一步要错误的扣除你工资,为了解除这种不确定执行的巨大风险...那么就把你app shutdown了....
如果你有catch 对于程序来说 你有防备 出现异常的准备...那么真到了异常 那么就看你异常的处理流程 是否奏效....
异常体系....瞎扯淡...就是几个异常类的继承关系(虚拟机内部异常,用户定义异常 ...).....还能有什么 .
无非是 根据不同的出错类型来 包装异常...给这个这种类型的异常 或者 这类问题取一个名字....
当你没看堆栈信息的时候大概可以 判断一下 问题再那里而已.....
异常来跳转 程序是因为 无法预期异常后下步该如何执行 所以跳转...
异常是比较消耗系统资源的.
.net 为什么没有主动要求你 抛出异常....
因为.net的主要架构师 再设计.net时候看到了 很多程序员 一层一层的抛出异常只在最底层 main中截获异常....
那么大量的函数都是 throws 其实根本无意义....所以他再设计的时候就没有采取和java 相同的方式 .
片段 "
public LocationInfo(Type callerStackBoundaryDeclaringType)
{
// Initialize all fields
m_className = NA;
m_fileName = NA;
m_lineNumber = NA;
m_methodName = NA;
m_fullInfo = NA;
#if !NETCF
if (callerStackBoundaryDeclaringType != null)
{
try
{
StackTrace st = new StackTrace(true);
int frameIndex = 0;
// skip frames not from fqnOfCallingClass
while (frameIndex < st.FrameCount)
{
StackFrame frame = st.GetFrame(frameIndex);
if (frame != null && frame.GetMethod().DeclaringType == callerStackBoundaryDeclaringType)
{
break;
}
frameIndex++;
}
// skip frames from fqnOfCallingClass
while (frameIndex < st.FrameCount)
{
StackFrame frame = st.GetFrame(frameIndex);
if (frame != null && frame.GetMethod().DeclaringType != callerStackBoundaryDeclaringType)
{
break;
}
frameIndex++;
}
if (frameIndex < st.FrameCount)
{
// now frameIndex is the first 'user' caller frame
StackFrame locationFrame = st.GetFrame(frameIndex);
if (locationFrame != null)
{
System.Reflection.MethodBase method = locationFrame.GetMethod();
if (method != null)
{
m_methodName = method.Name;
if (method.DeclaringType != null)
{
m_className = method.DeclaringType.FullName;
}
}
m_fileName = locationFrame.GetFileName();
m_lineNumber = locationFrame.GetFileLineNumber().ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
// Combine all location info
m_fullInfo = m_className + '.' + m_methodName + '(' + m_fileName + ':' + m_lineNumber + ')';
}
}
}
catch(System.Security.SecurityException)
{
// This security exception will occur if the caller does not have
// some undefined set of SecurityPermission flags.
LogLog.Debug("LocationInfo: Security exception while trying to get caller stack frame. Error Ignored. Location Information Not Available.");
}
}
#endif
}
C# Preprocessor Directives
时间
select
trunc(86400*
(to_date('2009-1-1 23:15:01','yyyy-mm-dd hh24:mi:ss') -
to_date('2009-1-1 23:10:00','yyyy-mm-dd hh24:mi:ss'))
)
from dual ;
在启动时关闭sendmail 服务 [其它服务也一样]
posted by JianNeng in Opensource 在启动时关闭sendmail- -
对其他的服务可以采取同样的措施。
而对于那些不是从inetd启动的服务,则通过命令来关闭,例如需要关闭sendmail服务,则:
/etc/rc.d/init.d/sendmail stop
然后再设置其不在系统启动时启动:
chkconfig -levels 12345 sendmail off
[root@oracle xinetd.d]# chkconfig --level 123456 sendmail off
[root@oracle xinetd.d]#
linux 关机
[root@oracle ~]# shutdown -h now
摘要: plsql developer plsql 调试无法 ..包没加入所有的函数的定义到 包头文件定义. 阅读全文
摘要: 为什么log4j 显示行号
(2) 建立一个Throwable的对象来取得当前运行堆栈的快照...Throwable.fillInStackTrace();
(3) 从抛出的Throwable对象中,来分析出当前log信息的行号... 阅读全文
摘要: 其实,很简单,并不是因为系统打了补丁的问题,而是因为VS 2008打了补丁,导致没法删除,可以在“添加/删除程序”面板中,选中上方的“显示更新”,然后找到VS 2008,下面多多少少会挂了几个更新或者补丁,全部先删掉,然后再删VS 2008,熟悉的维护界面又回来了,输入序列号,OK,正常使用~~~ 阅读全文
摘要: lsnrctl services 阅读全文
摘要: sqlplus Xdmp/Xdmp@127.0.0.1:1521/Xdmp
SQL> conn sys/oracle @itmp_rac as sysdba 阅读全文
摘要: 左连接 .如果一边的没有记录, nvl (右边,0) 否则会造成整列无法,无数据.
select d.crunit_ - nvl( a.stkamt_ ,0)
from dl_fundetf d ,
(select c.stkcode_, c.exchgcode_,c.stkamt_ ,c.stkcost_
from acc_proflstk c
where 1=1
and c.fundid_ = '55'
and c.cellid_ = '50001'
and c.proflid_ = '080724113732'
) a
where 1=1
and d.exchgcode_ = 'SH'
and d.fundid_ = '510051'
and a.exchgcode_ (+)= d.exchgcode_
and a.stkcode_ (+)= d.fundid_ 阅读全文
摘要: 1.作用: 屏蔽方法名 ,灵活性动态性函数指针
2 .使用:
定义一个委托: 和一个类一样的
delegatevoid Del (int x);
或者
delegatevoid Del (T x);
定一个委托变量和赋值
Main(){
Del d = obj.DoWork; 实例方法或者静态方法都可以
}
阅读全文
摘要: 检查客户机器上的输入法区域设置。如果默认输入法不是中文,则先调用一下方法,切换到中文。
Top
阅读全文
SQL> exec dbms_stats.gather_table_stats('IDMP','TEST_GDDG');
PL/SQL 过程已成功完成。
SQL>
select num_rows from dba_tables
where owner='IDMP' and table_name ='TEST_GDDG';
NUM_ROWS
----------
182
SQL> truncate table test_gddg
2 ;
表被截断。
SQL> select num_rows from dba_tables
where owner='IDMP' and table_name ='TEST_GDDG';
NUM_ROWS
----------
182
SQL> exec dbms_stats.gather_table_stats('IDMP','TEST_GDDG');
PL/SQL 过程已成功完成。
SQL>
select num_rows from dba_tables
where owner='IDMP' and table_name ='TEST_GDDG';
NUM_ROWS
----------
0
SQL>
另外 补充
http://www.dbanotes.net/database/oracle_dbms_stats.html
导出和回复统计信息
dbms_stats VS analyze
http://yumianfeilong.com/2007/05/26/dbms_stats-vs-analyze/
众所周知,Table是分区的时候,analyze根据所有partition上的已有的统计信息“计算”出整个表级别上的统计信息;而dbms_stats是实际去计算整个表范围的统计信息,因此表级别的统计信息比analyze更精确,反映表上真实的情况.