1.重新编译有错误的函数,存储过程,包
2.查看没有关闭的游标
[url]http://www.oracle.com.cn/viewthread.php?tid=17870&extra=&page=1[/url]
3.设置用户的最大连接数
4.一行变多列
3.2句话搞定客户端和服务器字符集不一致
a.查询服务器端配置的字符集。在sqlplus中以dba用户执行:
select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;
b.在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为上述查询变量的值(注意引号内的字符应大写),再查看时不需要重启Oracle。
4.触发器和存储过程的优缺点汇总(转) 缺点:
1、可移植性是存储过程和触发器最大的缺点。
2、占用服务器端太多的资源,对服务器造成很大的压力
3、不能做DDL。
4、触发器排错困难,而且数据容易造成不一致,后期维护不方便。
优点:
1、预编译,已优化,效率较高。避免了SQL语句在网络传输然后再解释的低效率。
2、存储过程可以重复使用,减少开发人员的工作量。
3、业务逻辑封装性好,修改方便。
4、安全。不会有SQL语句注入问题存在。
select 'ALTER ' || OBJECT_TYPE || ' ' || owner || '.' || OBJECT_NAME ||
' COMPILE;'
from all_objects
where status = 'INVALID'
and object_type in ('PACKAGE', 'FUNCTION', 'PROCEDURE', 'TABLE', 'VIEW',
'SEQUENCE', 'TRIGGER');
select 'ALTER PACKAGE ' || OWNER || '.' || OBJECT_NAME || ' COMPILE body;'
from ALL_objects
where status = 'INVALID'
and object_type in ('PACKAGE BODY');
2.查看没有关闭的游标
[url]http://www.oracle.com.cn/viewthread.php?tid=17870&extra=&page=1[/url]
-----查看没有关闭的游标数
select KGLLKFLG,KGLNAOBJ from X$KGLLK where KGLLKFLG=8;
-----查看session占用的游标数目
select * from V$OPEN_CURSOR
-------查看表的底层结构
select * from v$fixed_view_definition where view_name ='GV$OPEN_CURSOR';
3.设置用户的最大连接数
--先创建一个PROFILE
create profile ses_conn limit
sessions_per_user n; ----- n为最大连接数。
-----oracle 最大连接数的参数
show parameter process
------然后将该PROFILE付给需要限制的用户。
alter user xxx profile ses_conn;
-------最后别忘了确认RESOURCE_LIMIT参数已设为TRUE。如果没有,用
alter system set recource_limit=TRUE;
4.一行变多列
SQL> select * from a3;
ID ID1 ID2
---------- ---------- ----------
1 2 3
SQL>
SQL> select decode(column_name,column_name,column_name) name,
2 decode(column_name,'ID',ID,'ID1',ID1,'ID2',ID2) value
3 from user_tab_columns u,A3 t
4 where u.table_name='A3';
NAME VALUE
------------------------------ ----------
ID 1
ID1 2
ID2 3
3.2句话搞定客户端和服务器字符集不一致
a.查询服务器端配置的字符集。在sqlplus中以dba用户执行:
select tab1.aa||'_'||tab2.bb||'.'||tab3.cc from (select VALUE$ aa from sys.props$ where name='NLS_LANGUAGE')tab1,(select VALUE$ bb from sys.props$ where name='NLS_ISO_CURRENCY')tab2,(select VALUE$ cc from sys.props$ where name='NLS_CHARACTERSET')tab3;
b.在客户端的注册表HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中,如无系统变量NLS_LANG,则“新建”->“字符串”,重命名为“NLS_LANG”,并赋值为上述查询变量的值(注意引号内的字符应大写),再查看时不需要重启Oracle。
4.触发器和存储过程的优缺点汇总(转) 缺点:
1、可移植性是存储过程和触发器最大的缺点。
2、占用服务器端太多的资源,对服务器造成很大的压力
3、不能做DDL。
4、触发器排错困难,而且数据容易造成不一致,后期维护不方便。
优点:
1、预编译,已优化,效率较高。避免了SQL语句在网络传输然后再解释的低效率。
2、存储过程可以重复使用,减少开发人员的工作量。
3、业务逻辑封装性好,修改方便。
4、安全。不会有SQL语句注入问题存在。