PL/sql中怎样得到insert,update,delete语句执行后,受影响的纪录行数关键字
PL/sql中怎样得到insert,update,delete语句执行后,受影响的纪录行数关键字: pl/sql中怎样得到insert,update,delete语句执行后,受影响的纪录行数 是 sql%rowcount ,舉個例子 begin delete from xxx ; dbms_output.put_line(sql%rowcount); end; 最後顯示出來得,就是處理得行數,當然,這個sql%rowcount參數,你可以用來做判斷,檢察之類得[@more@]
mysql import and export
一、备份数据库:(命令在DOS的mysqlbin目录下执行) mysqldump --opt school>school.bbb 注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。 1.导出整个数据库mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u root -p aikersql> aiker.sql2.导出一个表mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u aiker -p aikersql users> aiker_users.sql3.导出一个数据库结构mysqldump -u root -p -d --add-drop-table aikersql>d:aiker_
oracle死锁的查看及kill方法
经常在oracle的使用过程中碰到这个问题,所以也总结了一点解决方法:)1)查找死锁的进程:sqlplus "/as sysdba"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; 2)kill掉这个死锁的进程:alter system kill session ‘sid,serial#’; (其中sid=l.session_id)3)如果还不能解决,select pro.spid from v$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr; 其中sid用死锁的sid替换。exi
查看、修改oracle字符集,查看oracle版本
1、查看数据库字符集 数据库服务器字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。 客户端字符集环境select * from nls_instance_parameters,其来源于v$parameter, 表示客户端的字符集的设置,可能是参数文件,环境变量或者是注册表 会话字符集环境 select * from nls_session_parameters,其来源于v$nls_parameters,表示会话自己的设置,可能是会话的环境变量或者是alter session完成,如果会话没有特殊的设置,将与nls_instance_parameters一致。 客户端的字符集要
怎样Oracle把多条记录的相同字段拼成一个字符串
select 别名 from( select row_number()over(order by lv desc) id,name from ( select level lv,replace(sys_connect_by_path(字段,','),',','') 别名from ( select name,row_number()over(order by 字段) id from 查询结果 ) connect by prior id = id-1 ))where id=1;*************测试log:*************[TEST@ORA1] SQL>select * from test2;NAM ID--- ----------aaa 234bbb 786ccc 879[TEST@ORA1] SQL>select name from( 2 select row_number()over(order by lv desc) id,name f
oracle 存储过程中屏幕打印
-- 查看存储过程执行时的打印信息 SET SERVEROUTPUT ON -- 执行存储过程 EXECUTE $proc_name; example:set serveroutput on;declare tt int; begin tt:=5; dbms_output.put_line(to_char(tt)); end; [@more@]
sql中字符串”&“的转译
当sql中出现字符串“&”的时候可以用如下转换,找到此符号的ascii 码38,然后用chr(38)进行转译然后用连字符||与前后的字符进行相连select * from product_mst where product_name like 'RAD/R&F_INDIA_G100FR/SIM/90-4R/LG/FLS' select * from product_mst where product_name like 'RAD/R'||chr(38)||'F_INDIA_G100FR/SIM/90-4R/LG/FLS' [@more@]
oracle 竖表,横表(a stupid way,want the smart way)
竖表->横表select a.user_ohr_id sso, max(decode(a.change_type_id,1, b.change_type_desc,'')) t1, max(decode(a.change_type_id,2, b.change_type_desc,'')) t2, max(decode(a.change_type_id,3, b.change_type_desc,'')) t3, max(decode(a.change_type_id,4, b.change_type_desc,'')) t4, max(decode(a.change_type_id,5, b.change_type_desc,'')) t5, max(decode(a.change_type_id,6, b.change_type_desc,'')) t6, max(decode(a.change_type_id,7, b.change_type_desc,'')) t7 from occr_user_changetype a ,occr_change_type b w
分组查出每组中日期最大的一条(分组查出班级中成绩第一名的一个)
分组查出每组中日期最大的一条select * from ( select order_id,poleid,order_date,row_number() over(partition by poleid order by order_date desc) mm from orders) where mm=1分组查出班级中成绩第一名的一个select * from ( select name,class,s,row_number() over(partition by class order by s desc) mm from t2) where mm=1 [@more@]
SQL&PL/SQL (转)
SQL&PL/SQL[Q]怎么样查询特殊字符,如通配符%与_[A]select * from table where name like 'A_%' escape ''[Q]如何插入单引号到数据库表中[A]可以用ASCII码处理,其它特殊字符如&也一样,如 insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'或者用两个单引号表示一个or insert into t values('I''m'); -- 两个''可以表示一个'[Q]怎样设置事务一致性[A]set transaction [isolation level] read committed; 默认语句级一致性set transaction [isolation level] serializable;read only; 事务级一致性[Q]怎么样利用游标
Truncate,Delete,Drop的比较.
truncate,delete,drop的比较.注意:这里说的delete是指不带where子句的delete语句相同点:truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是DML,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发. truncate,drop是DDL, 操作立即生效,原数据不放到rollback segmen
修改oracle client 的字符集
修改oracle client 的字符集,到注册表中修改:HKEY_LOCAL_MACHINE-》SOFTWARE--》ORACLE--》KEY_OraDb10g_home1--》改成:AMERICAN_AMERICA.AL32UTF8或者出错提示中指定的字符集[@more@]
search all recoreds when repeat rows more than one
selectgroup by q,vhaving count(q) >1 We need put all select filed in group by sub sentence q,v,count(q) from quote[@more@]
Oracle查询中rownum与Order by查询的关系(查询出前几名)
在开发应用的时候,把数据按照一定的规则排序后再取前几条数据这种操作是很平常的事情。我们在Oracle中常用的就是order by,然后取得rownum小于多少的数据这种方法。不过如果对Oracle不熟悉,也许就会发现你写的SQL语句检索出来的值不正确,这个是为什么呢。 因为Oracle在检索的时候,会首先把数据都检索出来,然后在排序段中进行排序。假如你有一个SQL语句如下所示。SELECT EMP_NOFROM EMPWHERE ROWNUM < 10ORDER BY EMP_NO 在检索的时候,会首先把数据检索出来,也就是把EMP表数
Installing Oracle Database 10g Release 2 on Linux x86
Installing Oracle Database 10g Release 2 on Linux x86http://www.oracle.com/technology/pub/articles/smiley_10gdb_install.html其中图形界面出不来,就跑到root用户下执行命令:xhost+目录不对的情况下跑到root用户下,将/etc/passwd文件中最后有一行包括oracle安装目前的,改成需要的目录即可,然后重新用oracle账号登录继续安装oracle:x:501:503::/home/oracle:/bin/bash改成:oracle:x:501:503::/home/app/oracle:/bin/bash[@more@]
sqlserver 改名
if exists (select 1 from sysobjects a,syscolumns b where a.id = object_id('recruit_allocate') and a.id = b.id and b.name = 'modify_date') exec sp_rename N'recruit_allocate.modify_date',N'allocate_date',N'column' go[@more@]
ORACLE数据库里表导入SQL Server数据库
ORACLE数据库里表导入SQL Server数据库1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver.通过oracle客户端,在netmanager中建立“服务(TNS server)”,并测试连接上oracle数据库正常2、在sqlserver的DTS(导入和导出数据工具)进行(1)选择数据源: 数据源:oracle in oracle9i 选择:用户/系统DSN: 点击新建DSN:选择数据源类型:系统数据源, 下一步:选择驱动程序:oracle in oracle9i,下一步,完成 , 进入oracle odbc driver configration页面 再输入:datasorce name:GZDS TNS server
oracle 9i的数据库的dmp导入到10G数据库
9i的数据导入到10G数据,要用9i的客户端来导,先安装9i的客户端,然后通过net manager建立一个“服务命名”,连接到10G的数据库,并测试连通,(10G安装库的服务器防火墙要关掉)再到cmd命令行模式下通过imp命令导入,两端数据库字符集要一样,再创建好一个用户,zengal,并分配足够大小的表空间给他,同时赋给相关权限imp username/password@sid fromuser=username touser=username file=dmp_file_path log=logfile.log buffer=3000000 commit=y imp zengal/zengalpass@gz fromuser=testman touser=zengal file=f:/gz/20070612.dmp buffer
oracle数据库用sql实现快速分页
Oracle采用嵌套3层的查询语句结合rownum来实现分页,这在Oracle上是最快的方式,如果只是一层或者两层的查询语句的rownum不能支持order by。 程序: public String getLimitString(String sql) { StringBuffer pagingSelect = new StringBuffer(100); pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( "); pagingSelect.append(sql); pagingSelect.append(" ) row_ where rownum ?"); return pagingSelect.toString(); } sql实例: select * from ( select row_.