使用SELECT结果创建表
- Oracle下自动创建表
-
CREATE TABLE XXX AS SELECT * FROM ...
-
- SQLServer下创建表
-
SELECT * INTO NEWTABLENAME FROM ...
-
CREATE TABLE XXX AS SELECT * FROM ...
SELECT * INTO NEWTABLENAME FROM ...
在做OA表单开发的时候,经常会碰到一个字段用逗号或者其他分隔符存多个信息,例如一张表单中有一个附件控件,存储了多个附件的ID,中间用逗号隔开,这时候我们如果要通过附件ID抓取附件详细信息,如果使用LIKE,效率不高,因此需要将这个字段通过逗号分隔行转列。
注:该方法是在Oracle数据库中实现的,SQL Server或者Mysql 需要进行修改。
1、以sys用户登录数据库查询死锁
SELECT USERNAME, LOCKWAIT, STATUS, MACHINE, PROGRAM FROM V$SESSION WHERE SID IN ( SELECT SESSION_ID FROM V$LOCKED_OBJECT );
2、使用以下语句查询被死锁的语句
SELECT SQL_TEXT FROM V$SQL WHERE HASH_VALUE IN ( SELECT SQL_HASH_VALUE FROM V$SESSION WHERE SID IN ( SELECT SESSION_ID FROM V$LOCKED_OBJECT ) );
3、使用以下语句查找被死锁的进程
SELECT S.USERNAME, L.OBJECT_ID, L.SESSION_ID, S.SERIAL#, L.ORACLE_USERNAME, L.OS_USER_NAME, L. PROCESS FROM V$LOCKED_OBJECT L, V$SESSION S WHERE L.SESSION_ID = S. SID;
4、使用以下语句kill死锁的进程
ALTER SYSTEM KILL SESSION 'sid,serial#'; --(其中sid=l.session_id) --如:SQL> alter system kill session '24,37522'