1、创建表:
create table stud(
sid int,
sname varchar2(50)
)
并插入一条数据
insert into stud values(1,'Tom')
2、通过包定义一个游标
create or replace package pack_stud
is
--声明一个游标类型
type cur is ref cursor;
end;
3、创建存储过程
create or replace procedure pro_select_stud(
my_cur out pack_stud.cur
)
is
begin
open my_cur for ......
1、创建表
create table stud(
sid int,
sname varchar2(50),
age number,
score number(4,2))
并插入一些数据(自己手动插入一些吧)
2、创建函数
create or replace function fun_getScores(
v_age in stud.age%type
)
return number
is
v_score number;
begin
select sum(score) into v_score from stud where age > v_age;
return v_score;
--异常处理
exception
when others then
dbms_output.put_line(sqlcode||sqlerrm);
return -1;
end;
3、jdbc中调用
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.Types ......
PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
url:http://hi.baidu.com/1413/blog/item/a521251f7e5993c4a686696b.html
数据库 oracle for update of 和 for update区别
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update 锁定两个表的中满足条件的行
5. select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
for update 是把所有的表都锁点 for update of 根据of 后表的条件锁定相对应的表
-----------
关于NOWAIT(如果一定要用FOR UPDATE,我更建议加上NOWAIT)
当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
......
PL/SQL-FOR UPDATE 与 FOR UPDATE OF的区别
url:http://hi.baidu.com/1413/blog/item/a521251f7e5993c4a686696b.html
数据库 oracle for update of 和 for update区别
select * from TTable1 for update 锁定表的所有行,只能读不能写
2 select * from TTable1 where pkid = 1 for update 只锁定pkid=1的行
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update 锁定两个表的所有记录
4 select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update 锁定两个表的中满足条件的行
5. select * from Table1 a join Table2 b on a.pkid=b.pkid where a.pkid = 10 for update of a.pkid 只锁定Table1中满足条件的行
for update 是把所有的表都锁点 for update of 根据of 后表的条件锁定相对应的表
-----------
关于NOWAIT(如果一定要用FOR UPDATE,我更建议加上NOWAIT)
当有LOCK冲突时会提示错误并结束STATEMENT而不是在那里等待(比如:要查的行已经被其它事务锁了,当前的锁事务与之冲突,加上nowait,当前的事务会结束会提示错误并立即结束 STATEMENT而不再等待).
......
在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解
决了大文本数据在ORACLE下存取问题。
一、运行环境:
1、Microsoft Windows 2000 Server + IIS 5.0
2、Oracle8i中文标准版
二、建立数据表:
CREATE TABLE SYSTEM.TEST(
BLOB LONG,
ID NUMBER)
/
三、源程序:
1、数据存入程序:test.asp
<%
'表单提交处理部分
'--------------------------------------------------
If request("ok")=1 then
'字符转换函数
function tansstr(sstr)
sstr=replace(sstr," "," ")
sstr=replace(sstr,chr(13) & chr(10),"<br>")
tansstr=sstr
end function
'提交数据赋值
a=lenb(request("text"))
b=len(request("text"))
c=tansstr(request("text"))
'打开数据库,打开test数据表以Rs为记录集
Set OraSession=CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0)
Set rs=OraDatabase.CreateDynaset("select * from test order by id desc",0)
'求ID值
if rs.eof then
id=1
else
......
在我开发BS结构程序中,由于经常需要在ORACLE中处理一些容量较大的文本数据,所以经过反复测试终于用ASP成功解
决了大文本数据在ORACLE下存取问题。
一、运行环境:
1、Microsoft Windows 2000 Server + IIS 5.0
2、Oracle8i中文标准版
二、建立数据表:
CREATE TABLE SYSTEM.TEST(
BLOB LONG,
ID NUMBER)
/
三、源程序:
1、数据存入程序:test.asp
<%
'表单提交处理部分
'--------------------------------------------------
If request("ok")=1 then
'字符转换函数
function tansstr(sstr)
sstr=replace(sstr," "," ")
sstr=replace(sstr,chr(13) & chr(10),"<br>")
tansstr=sstr
end function
'提交数据赋值
a=lenb(request("text"))
b=len(request("text"))
c=tansstr(request("text"))
'打开数据库,打开test数据表以Rs为记录集
Set OraSession=CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase=OraSession.DbOpenDatabase("autop","system/manager",0)
Set rs=OraDatabase.CreateDynaset("select * from test order by id desc",0)
'求ID值
if rs.eof then
id=1
else
......
本译文采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,转载请保留此信息
译者:马齿苋 | 链接:http://www.dbabeta.com/2010/oracle-sql-server-comparison-i.html
作者:Sadequl Hussain | 原文:http://www.sql-server-performance.com/articles/dba/oracle_sql_server_comparison_p1.aspx
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据库专家们也通常会期待着在他们的下一份工作中能学到点不一样的东西,那些有勇气的人们则愿意花时间、金钱和精力去学习新的东西,也有其他因为换了新公司或者是为了找新的工作而去学习新的系统的人们,毋庸置疑的一点就是公司老板和人力专家们会更加青睐于那些拥有多个领域经验的求职者。
依我个人的经验来看,在学习一个新的数据平台的时候,最好的方法就是在新的环境中去发现那些你已知的东西,这样学习起来会简单很多。当然,当中也会遇到一些全新的概念需要去学习,或者是忘掉一些你现在已知的概念,但不管怎么说你不是从 ......
本译文采用知识共享署名-非商业性使用-相同方式共享 3.0 Unported许可协议发布,转载请保留此信息
译者:马齿苋 | 链接:http://www.dbabeta.com/2010/oracle-sql-server-comparison-i.html
作者:Sadequl Hussain | 原文:http://www.sql-server-performance.com/articles/dba/oracle_sql_server_comparison_p1.aspx
一般的公司通常会在他们的信息系统架构中引入多种数据库平台,同时引入三到四种不同的RDBMS解决方案的中大型公司也并不少见,当然这些公司里面的DBA们通常也需要同时拥有管理多种不同平台的技能了。
只在一种平台上展开工作的数据库专家们也通常会期待着在他们的下一份工作中能学到点不一样的东西,那些有勇气的人们则愿意花时间、金钱和精力去学习新的东西,也有其他因为换了新公司或者是为了找新的工作而去学习新的系统的人们,毋庸置疑的一点就是公司老板和人力专家们会更加青睐于那些拥有多个领域经验的求职者。
依我个人的经验来看,在学习一个新的数据平台的时候,最好的方法就是在新的环境中去发现那些你已知的东西,这样学习起来会简单很多。当然,当中也会遇到一些全新的概念需要去学习,或者是忘掉一些你现在已知的概念,但不管怎么说你不是从 ......
begin
for item in (select * from user_constraints a where a.constraint_type = 'R') loop
execute immediate 'alter table ' || item.table_name || ' disable constraint ' || item.constraint_name;
end loop;
end;
/ ......
begin
for item in (select * from user_constraints a where a.constraint_type = 'R') loop
execute immediate 'alter table ' || item.table_name || ' disable constraint ' || item.constraint_name;
end loop;
end;
/ ......