PL/SQLѧϰ±Ê¼ÇÎå
ÓαêÊÇ´ÓÊý¾Ý¿âÖÐÌáÈ¡³öÀ´µÄÊý¾Ý£¬ÒÔÁÙʱ±íµÄÐÎʽ´æ·ÅÔÚÄÚ´æÖУ¬ÔÚÓαêÖÐÓÐÒ»¸öÊý¾ÝÖ¸Õ룬ÔÚ³õʼ״̬ÏÂÖ¸ÏòÊ׼Ǽ£¬ ÀûÓÃfetchÓï¾äÒÆ¶¯¸ÃÖ¸Õ룬´Ó¶ø¶ÔÓαêÖеÄÊý¾Ý½øÐи÷ÖÖ²Ù×÷¡£
1.¶¨ÒåÓαê
cursor ÓαêÃû is selectÓï¾ä;
2.´ò¿ªÓαê
open ÓαêÃû;
3.ÌáÈ¡ÓαêÊý¾Ý
fetch ÓαêÃû into ±äÁ¿Ãû1, ±äÁ¿Ãû2, ....;
»ò
fetch ÓαêÃû into ¼Ç¼ÐͱäÁ¿Ãû;
4.¹Ø±ÕÓαê
close ÓαêÃû;
5.ÓαêµÄÊôÐÔ
%isopen
¸ÃÊôÐÔ±êʶÓαêÊÇ·ñ´ò¿ª£¬Èç¹ûûÓдò¿ªÓαê¾ÍʹÓÃfetchÓï¾ä½«Ìáʾ´íÎó¡£
%isfound
¸ÃÊôÐÔ±êʶһ¸öfetchÓï¾äÊÇ·ñÓÐÖµ£¬ÓÐÖµ·µ»Øtrue£¬·ñÔò·µ»Øfalse¡£
%notfound
¸ÃÊôÐÔÓë%isfoundÏà·´¡£
%rowcount
¸ÃÊôÐÔÓÃÓÚ»ñÈ¡ÓαêµÄÊý¾ÝÐÐÊý¡£
ʾÀý£º
set serveroutput on
declare
tempsal scott.emp.sal%type;
cursor mycursor is
select * from scott.emp
where sal>tempsal;
cursorrecord mycursor%rowtype;
begin
tempsal:=800;
open mycursor;
if mycursor%isopen then
fetch mycursor into cursorrecord;
dbms_output.put_line(to_char(cursorrecord.deptno));
dbms_output.put_line(to_char(mycursor%rowcount));
else
dbms_output.put_line('Óα껹δ´ò¿ª');
end if;
end;
Ïà¹ØÎĵµ£º
C#ÖвÙ×÷OracleʱµÄSQLÓï¾ä²ÎÊýµÄÓ÷¨
OracleTransaction myTrans ;
conn.Open();
myTrans =conn.BeginTransaction(IsolationLevel.ReadCommitted) ......
SQL×Ô¶¯ÒìµØ±¸·Ý·½·¨
·½·¨Ò»£º
mssqlÊý¾Ý¿âÔ¶³Ì±¸·ÝµÄjob
/*ÔÚÔ¶³Ì»úÆ÷²Ù×÷ϵͳµÄ¼ÆËã»ú¹ÜÀíÀィÁ¢Ò»¸öÓû§ÃûΪkyleµÄÓû§£¬ÃÜÂëΪ1234£¬Í¬Ê±ÔÚÄÇ̨»úÆ÷µÄ·ÇϵͳÅÌÀィһ¸öÃûΪbackupµÄ¹²ÏíÎļþ¼Ð£¬ÎªÁ˰²È«ÁíÍâÉèÖÃÕâ¸öÎļþ¼ÐÖ»ÓÐÕâ¸ökyleÓû§¿ÉÒÔ·ÃÎÊ¡£*/
declare @sql varchar(500)
select @sql='\\10.2. ......
--´´½¨Á´½Ó·þÎñÆ÷
exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', 'Ô¶³Ì·þÎñÆ÷Ãû»òipµØÖ· '
exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, 'Óû§Ãû ', 'ÃÜÂë '
--²éѯʾÀý
select * from ITSV.Êý¾Ý¿âÃû.dbo.±íÃû
--µ¼ÈëʾÀý
select * into ±í from ITSV.Êý¾Ý¿âÃû.dbo.±íÃû
--ÒÔºó²» ......
1¡¢ISNULL ( check_expression , replacement_value )
²ÎÊý
check_expression
½«±»¼ì²éÊÇ·ñΪ NULLµÄ±í´ïʽ¡£check_expression ¿ÉÒÔÊÇÈκÎÀàÐ͵ġ£
replacement_valueÔÚ check_expressionΪNULLʱ½«·µ»ØµÄ±í´ïʽ¡£replacement_value ±ØÐëÓë check_expresssion ¾ßÓÐÏàͬµÄÀàÐÍ¡£
·µ»ØÀàÐÍ
·µ»ØÓë check_expression Ï ......