ORACLEPL/SQL基础
ORACLEPL/SQL基础--游标的学习来源:
游标字面理解就是游动的光标。
用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等。
游标的分类:
显式游标和隐式游标
显示游标的使用需要4步:
1.声明游标
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
2.打开游标
open mycur(000627) 注:000627:参数
3.读取数据
fetch mycur into varno,varprice;
4.关闭游标
close mycur;
游标的属性
oracle 游标有4个属性: %ISOPEN , %FOUND , %NOTFOUND, %ROWCOUNT
%ISOPEN 判断游标是否被打开,如果打开%ISOPEN 等于true,否则等于false
%FOUND %NOTFOUND 判断游标所在的行是否有效,如果有效,则%FOUNDD等于true,否则等于false
%ROWCOUNT 返回当前位置为止游标读取的记录行数。
示例:
set serveroutput on;
declare
varno varchar2(20);
varprice varchar2(20);
CURSOR mycur(vartype number) is
select emp_no,emp_zc from cus_emp_basic
where com_no = vartype;
begin
if mycur%isopen = false then
open mycur(000627);
end if;
fetch mycur into varno,varprice;
while mycur%found
loop
dbms_output.put_line(varno||’,’||varprice);
if mycur%rowcount=2 then
exit;
end if;
fetch mycur into varno,varprice;
end loop;
close mycur;
end;
pl/sql 记录 的结构和c语言中的结构体类似,是由一组数据项构成的逻辑单元。
pl/sql 记录并不保存再数据库中,它与变量一样,保存再内存空间中,在使用记录时候,要首先定义记录结构,然后声明记录变量。可以把pl/sql记录看作是一个用户自定义的数据类型。
set serveroutput on;
declare
type person is record
(
empno cus_emp_basic.emp_no%type,
相关文档:
sql编译与重编译
1.sp_recompile
使存储过程和触发器在下次运行时重新编译。
2.sp_refreshview
如果视图所依赖的基础对象发生更改(如:表增加了一个字段),则视图不会自动更新,这时需要调用该存储过程来对视图进行刷新。有人说,重新打开一下视图就可以更新视图,但我试了没有成功。
例1:刷新指定名称的视图
......
SQL Server 2000 数据库同步配置的原理
复制的概念
Microsoft? SQL Server? 2000 的复制是在数据库之间对数据和数据库对象进行复制
和分发并进行同步以确保其一致性的一组技术。
使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分
发给远程或移动用户。复制还能够使用户提高应用程序性能 ......
SQL中的时间函数非常有用,特别是在我们进行初始赋值、复杂查询的时候,就显得特别方便。
1、获得系统当前时间
select getdate()
2、DateName ( datepart , date )返回表示指定日期的指定日期部分的字符串。
--今天是2009-2-24--星期二
SELECT DATENAME(year, getdate()) AS 'Year&nbs ......
--行列转换 行转列
DROP TABLE t_change_lc;
CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);
INSERT INTO t_change_lc
SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal from dual CONNECT BY ROWNUM <= 4
UNION
SELECT '002' card_code, ROWNUM q, tru ......