转载:http://www.cnblogs.com/nizuimeiabc1/p/9441937.html 1,首先查找表的操作记录 select * from v$sqlarea a where a.SQL_TEXT like '%TB_ACCT_SYSDATE%'; 2,从上面的记录中找到update语句对应的sql_id select * from v$sqltext a,v$sqlarea b where a.SQL_ID=b.SQL_ID and b.SQL_ID in('cq5382
利用Oracle中系统自带的两个视图可以实现查看表中主键信息,语句如下:select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_name and b.constraint_type = 'P' and a.table_name = '大写的表名' 查看表的主键约束名称,以及主键约束的字段名称.如果没有,则返
select a.constraint_name, a.column_name from user_cons_columns a, user_constraints b where a.constraint_name = b.constraint_name and b.constraint_type = 'P' and a.table_name = 'AA'-------大写 查看AA表的主键约束名称,以及主键约束的字段名称. 如果没有,则返回空
1. 新增一个表,通过另一个表的结构和数据 create table XTHAME.tab1 as select * from DSKNOW.COMBDVERSION 2. 如果表存在: insert into tab1 select * from tab2; 3.同一个表中,将A字段的指赋给B字段: update table_name set B = A; 4. 将一个表的字段数据插入到另一个表的字段数据中 insert into XTHAME.tab1(pk_bdversion,vbd
在oracle数据库中你要在程序里得到一张表的数据就必须先创建游标和SQL Service不一样. --创建游标create or replace package pkg_Dataas type refcursor is REF cursor; procedure pro_rows(refcursor out refcursor);end pkg_Data; --创建存储过程create or replace procedure prc_DataInput(dateStr in varchar2
有一个需求需要同步两张表的相同字段,比如表A和表B,这两张表是不同的用户下的表,表结构是一样的. 一开始我简单写了一个sql语句,如下: update ord_log1 A set (A.pid, A.beg_ticket_no, A.end_ticket_no) = (select B.pid, B.beg_ticket_no, B.end_ticket_no from newhl.ord_log B where A.mer_id = B.mer_id and A.ord_id = B.ord
① 查看用户锁表 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid ② 解锁语句 alter system kil
复制表结构及其数据 create table table_name_new as select * from table_name_old 只复制表结构 create table table_name_new as select * from table_name_old where 1=2 只复制表数据 insert into table_name_new select * from table_name_old 表结构不一样 insert into table_name_new(column
最近做项目,遇到了更新超时的问题,反复检查数据都正常,纳闷完了忽然想到是不是表被锁定了,一看果然,解决办法如下: --锁表查询语句 SELECT object_name, machine, s.sid, s.serial#,s.sid||','||s.serial# str FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid; -
Oracle写法: update temp_agentpay_df q set q.up_batch_bizid=(select c.batch_bizid from temp_df_id c where c.detail_id=q.detail_id) ; Mysql写法: update temp_agentpay_df q,temp_df_id c set q.up_batch_bizid=c.batch_bizid where c.detail_id=q.detail_id;
今天在QQ群众讨论到一个问题,记录下下来,一边以后用的时候可以翻阅 总结除了三种方法 --方法1,,这一种方法不行,,错误的认识了,@@ROWCOUNT,,,唉,,学艺不精,,丢人啊 SELECT TOP 1 @@ROWCOUNT FROM dbo.tb_CommonDataDict --方法2if exists(SELECT TOP 1 * FROM dbo.tb_CommonDataDict )--方法3if (select Count(*) from a)>0
oracle 查询表的大小,表空间的使用情况,默认表空间 oracle 查询表的大小,表空间的使用情况,默认表空间 --查看某张表占用磁盘空间大小 ( 表名大写 ) Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segment_Name='表名'; 查看用户默认表空是那个 select username,default_tablespace from dba_user