Oracle 死锁解决方案

--查看数据库锁,诊断锁的来源及类型
SELECT B.OWNER, B.OBJECT_NAME, L.SESSION_ID, L.LOCKED_MODE
  FROM V$LOCKED_OBJECT L, DBA_OBJECTS B
 WHERE B.OBJECT_ID = L.OBJECT_ID;

--找出数据库的 serial#,以备杀死
SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME
  FROM V$LOCKED_OBJECT T1, V$SESSION T2
 WHERE T1.SESSION_ID = T2.SID
 ORDER BY T2.LOGON_TIME;

--杀死该 session
ALTER SYSTEM KILL SESSION '712,38739'
2022/10/2 posted in  SQL

SQL Server 查看字段详情

DECLARE @table_name AS VARCHAR(MAX);
SET @table_name = 'ZC_EMS_SQB_PRE';
SELECT
       UPPER (sys.columns.name) AS 字段
     , UPPER (sys.types.name)   AS 类型
     , sys.columns.max_length   AS 长度
     , sys.columns.is_nullable  AS 允许空值
     , (
           SELECT
                  COUNT (*)
             FROM sys.identity_columns
            WHERE sys.identity_columns.object_id = sys.columns.object_id
                  AND sys.columns.column_id = sys.identity_columns.column_id
       )                        AS is_identity
     , (
           SELECT
                  value
             FROM sys.extended_properties
            WHERE sys.extended_properties.major_id = sys.columns.object_id
                  AND sys.extended_properties.minor_id = sys.columns.column_id
       )                        AS 说明
  FROM sys.columns
     , sys.tables
     , sys.types
 WHERE sys.columns.object_id = sys.tables.object_id
       AND sys.columns.system_type_id = sys.types.system_type_id
       AND sys.tables.name = @table_name
       AND sys.types.name <> 'sysname'
 ORDER BY 允许空值 ASC
        , 字段 ASC
2022/10/2 posted in  SQL

SQL Server 死锁解决方案

SELECT
    REQUEST_SESSION_ID                          SPID
  , OBJECT_NAME (RESOURCE_ASSOCIATED_ENTITY_ID) TABLENAME
  FROM SYS.DM_TRAN_LOCKS
 WHERE RESOURCE_TYPE = 'OBJECT'

DECLARE @SPID INT
SET @SPID = 64 --锁表进程
DECLARE @SQL VARCHAR (1000)
SET @SQL = 'KILL ' + CAST(@SPID AS VARCHAR)
EXEC (@SQL)
2022/10/2 posted in  SQL

Sql Server 大文件处理

osql -S '192.168.100.106\SQL2012' -d TESTDB  -U TESTUSER -P TESTPASSWD -i C:\dbo.HEAD.Table.sql
  • -S服务器地址
  • -d数据库名称
  • -U用户名
  • -P密码
  • -i文件路径
2018/7/30 posted in  SQL

Sql Server 日期格式化

Sql Server 中一个非常强大的日期格式化函数

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
Select CONVERT(varchar(100), GETDATE(), 12): 060516 
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM 
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
Select CONVERT(varchar(100), GETDATE(), 112): 20060516 
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM 
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

常用:

Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 12): 060516 
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

格式:
CONVERT(data_type,e­xpression[,style])
说明:
此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)
相互转换的时候才用到.
例子:

Select CONVERT(varchar(30),getdate(),101) now
2018/6/6 posted in  SQL