开发中一些常会用到的sql和java语句

一、ORACLE

1.Oracle锁表与解锁

查看锁表进程SQL语句
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID;

杀掉锁表进程:
记录下SID和serial# ,分别替换掉下面的1155,39095,即可解除锁表

alter system kill session '1155,39095'; 

对象锁与解锁

这里以包为PKG_ZLGL_BASEDATA为例

注意name为包或者存储过程等;

SELECT * FROM V$DB_OBJECT_CACHE WHERE name='PKG_ZLGL_BASEDATA' AND LOCKS!='0';

查看sid 注意object为包或者存储过程等;

SELECT SID from V$ACCESS WHERE object='PKG_ZLGL_BASEDATA';

查看查看SID和SERIAL# in后面的条件为上述查的sid

SELECT SID,SERIAL#,PADDR,STATUS FROM V$SESSION WHERE SID IN('283','343');

杀进程 实例如下: alter system kill session ‘sid,SERIAL’

alter system kill session '283,50673'

/查看被锁住的存储过程/
SELECT FROM V$DB_OBJECT_CACHE WHERE OWNER = ‘APPADMIN’ AND LOCKS != ‘0’;
SELECT
FROM DBA_DDL_LOCKS WHERE NAME = UPPER(‘TEMP_EXPORT’);
SELECT T.SID, T.SERIAL# FROM V$SESSION T WHERE T.SID = 24;

/查看被锁住的表/
SELECT DO.OWNER, DO.OBJECT_NAME, LO.SESSION_ID, LO.LOCKED_MODE
FROM V$LOCKED_OBJECT LO, DBA_OBJECTS DO
WHERE DO.OBJECT_ID = LO.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;

/kill被锁的进程 ‘sid, serial#’ /
ALTER SYSTEM KILL SESSION ‘24,30992’;

/lock相关表/
SELECT FROM V$LOCK;
SELECT
FROM V$SQLAREA;
SELECT FROM V$SESSION;
SELECT
FROM V$PROCESS;
SELECT FROM V$LOCKED_OBJECT;
SELECT
FROM ALL_OBJECTS;
SELECT * FROM V$SESSION_WAIT;

1、修改字段名:

  alter table 表名 rename column A to B

2、修改字段类型:

  alter table 表名 alter column 字段名 type not null

3、修改字段默认值
  alter table 表名 add default (0) for 字段名 with values

  如果字段有默认值,则需要先删除字段的约束,在添加新的默认值,

  select c.name from sysconstraints a
  inner join syscolumns b on a.colid=b.colid
  inner join sysobjects c on a.constid=c.id
  where a.id=object_id(‘表名’)
  and b.name=’字段名’

  根据约束名称删除约束

  alter table 表名 drop constraint 约束名

  根据表名向字段中增加新的默认值

  alter table 表名 add default (0) for 字段名 with values

4、增加字段:

  alter table 表名 add 字段名 type not null default 0

5、删除字段:

  alter table 表名 drop column 字段名;

CHARINDEX 作用

  写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEINDX的函数,顾名思义就是找到字符(char)的位置(index),既然能够知道所在的位置,当然就可以判断是否包含在其中了。

    通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。

基本语法如下:

  CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。

  expressionToSearch :用于被查找的字符串。

start_location:开始查找的位置,为空时默认从第一位开始查找。

PATINDEX

  和CHARINDEX类似,PATINDEX也可以用来判断一个字符串中是否包含另一个字符串,两种的差异在于,前者是全匹配,后者支持模糊匹配。

  1.简单示例

  select PATINDEX(‘%ter%’,’interesting data’)

STUFF ( character_expression , start , length ,character_expression )

参数
character_expression
一个字符数据表达式。character_expression 可以是常量、变量,也可以是字符列或二进制数据列。

start
一个整数值,指定删除和插入的开始位置。如果 start 或 length 为负,则返回空字符串。如果 start 比第一个character_expression 长,则返回空字符串。start 可以是 bigint 类型。

length
一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个character_expression 中的最后一个字符。length 可以是 bigint 类型。

返回类型
如果 character_expression 是受支持的字符数据类型,则返回字符数据。如果 character_expression 是一个受支持的 binary 数据类型,则返回二进制数据。

备注
如果开始位置或长度值是负数,或者如果开始位置大于第一个字符串的长度,将返回空字符串。如果要删除的长度大于第一个字符串的长度,将删除到第一个字符串中的第一个字符。
如果结果值大于返回类型支持的最大值,则产生错误。

html选择器

1.通过 id 来查找 HTML 元素
2.通过标签名来查找 HTML 元素
3.通过类名来查找 HTML 元素
4.通过 CSS 选择器查找 HTML 元素


   转载请注明


《开发中一些常会用到的sql和java语句》 by chen guoji under cc_by_name licensed
 上一篇
在华为写了 13 年代码,都是宝贵的经验 在华为写了 13 年代码,都是宝贵的经验
来源:https://dwz.cn/dqgOrbQo 本文来源华为人:徐宏伟,转给大家观摩下。 一天晚上,我和老婆聊天,说部门要我写个“大咖谈软件”的文章,老婆斜了我一眼,淡淡地说:“Linus大神21岁就写出了Linux内核的雏形,缔造了
2019-07-22
下一篇 
Java开发必知道的国外20大网站 Java开发必知道的国外20大网站
1、谷歌 https://www.google.com/ 2、https://stackoverflow.com里面包含各种开发遇到的问题及答案,质量比较高。 3、https://github.com/免费的开源代码托管网站,包括了许多开
2019-07-21
  目录