当前位置: 首页 > 工具软件 > Database .NET > 使用案例 >

About DataBase

艾心远
2023-12-01
2007-11-08


mysql中文乱码解决

1.安装路径下 “my.ini” 文件中,设置default-character-set=utf8(共2处)

2.连接mysql的url设置为:

jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf8


oracle中decode()的作用
DECODE 函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,
根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。
当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。
区别于SQL的其它函数,DECODE函数还能识别和操作空值.其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,
以决定最后的返回结果value 是一组成序偶的数值。如果输入数值与之匹配成功,
则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result 是一组成序偶的结果值default_result 未能与任何一序偶匹配成功时,
函数返回的默认值下面的例子说明了,如何读取用户CHECKUP表SEAPARK中
的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM checkup;





oracle锁表问题

查询表的状况的对象:V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS

select * from v$locked_object
select * from dba_objects

方法:

首先查看那些表被锁住了

select b.owner,b.object_name,a.session_id,a.locked_mode
from v$locked_object a,dba_objects b
where b.object_id = a.object_id;


select b.username,b.sid,b.serial#,logon_time
from v$locked_object a,v$session b
where a.session_id = b.sid order by b.logon_time;

杀进程中的会话

alter system kill session 'sid,serial#';
例如:
alter system kill session '29,5497';

查询锁表的方法:

SELECT S.SID SESSION_ID, S.USERNAME,
DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3,
'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive',
TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, 'None', 1, 'Null',
2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive',
TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')',
S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2
FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S
WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;

解锁方法:

ALTER SYSTEM KILL SESSION 'SID,SERIR#'



oracle常见问题

1.获取有哪些用户在使用数据库:select * from v$session

2.查数据库sid:select name from v$database

3.在Oracle服务器上通过SQLPLUS查看本机IP地址:
select sys_context('userenv','ip_address') from dual;

4.查询每个用户的权限:SELECT * FROM DBA_SYS_PRIVS

5.查询当前用户对像:SELECT * FROM USER_OBJECTS;   SELECT * FROM DBA_SEGMENTS

6.获取错误信息:SELECT * FROM USER_ERRORS

7.查看ORACLE中有哪些程序在运行之中:查看v$sessions表

8.查询某天的数据:select * from table_name where trunc(日期字段)=
to_date('2003-05-02','yyyy-mm-dd');



oracle查询最大会话数
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%'



extract用法

select extract(year from sysdate) from dual
函数用于从日期时间中取得所需的特定数据(年份,月份和天)




Oracle系统表

1.查询用户select username from dba_users

2.数据库对象:select username from dba_users

3.表空间:select * from dba_data_files
select * from dba_tablespaces

4.表:select * from dba_tables

5.序列select * from dba_sequences

6.视图:select * from dba_views;
select * from all_views;




DB2的表SYSIBM.SYSDUMMY1
用户可以通过访问这个表获取相应的信息。

例如:
'SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1' 命令返回当前系统日期
'SELECT 1+1 FROM SYSIBM.SYSDUMMY1' 执行数学运算
'SELECT NEXTVAL FOR MYSEQ FROM SYSIBM.SYSDUMMY1' 得到序列值



Oracle的dual表

select object_name ,object_type from dba_objects where object_name ='DUAL'

DUAL是 SYS用户的一个TABLE,它只有一个 DUMMY Field.

1.查找当天日期select sysdate from dual

2.查找当前日期的当月第一天select trunc(sysdate,'month') from dual

3.查找当前日期的当月最后一天select trunc(last_day(sysdate)) from dual

4.当前系统日期select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual

5.当前主机名select SYS_CONTEXT('USERENV','TERMINAL') from dual

6.当前的locale :select SYS_CONTEXT('USERENV','language') from dual

7.随机数:select dbms_random.random from dual

8.当前用户select dbms_random.random from dual

DUAL是Oracle与数据字典一起自动创建的一个表,它只有一列:DUMMY,其数据类型为:VARCHAR2(1)。

DUAL中只有一行数据:'X'。

DUAL属于SYS模式,但所有用户都可以使用DUAL名称访问它。
用SELECT计算常量表达式、伪列等值时常用该表,因为它只返回一行数据,
而使用其它表时可能返回多个数据行。

上文摘自:
http://ayaya.javaeye.com/category/21630?list=1
 
 类似资料:

相关阅读

相关文章

相关问答