ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

OracleÓαꡢ¹ý³ÌÓëÒýÓÃÀàÐÍ(Ò»)
2015-07-24 10:57:47 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:2´Î
Tags£ºOracle ÓÎ±ê ¹ý³Ì ÒýÓà ÀàÐÍ

0. ³£Óú¯Êý

substr(str,start,length);//¿ÉÒÔ·´ÏòË÷Òý¡£length²»Ö¸¶¨¾Íµ½½áβ
to_number(str);//strתnumber
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;//ÈÕÆÚת×Ö·û
nvl(tt,0);//ÈôÊÇ¿ÕÖµÔòΪ0

1. Óαê
¶ÔÓÚ¼¯ºÏÊý¾ÝµÄ´¦Àí£¬Ñ§»áʹÓôø²ÎÊýµÄ·½Ê½¡£

ͬһ¸ö»á»°Ä¬ÈÏ×î¶à300¸ö¹â±ê
set system set open_cursors=400 scope=
{both;½ö¸ü¸Äµ±Ç°memory;spfile;ÖØÆôÉúЧ}

//ÊôÐÔ 
//cus1%found cus1%notfound cus1%isopen cus1%rowcountÓ°ÏìÐÐÊý
SET serveroutput ON;
DECLARE
  CURSOR c1
  IS
    SELECT bookno,booktitle FROM bebook;
  bookno bebook.bookno%type;//ÒýÓÃÀàÐÍ
  booktitle bebook.booktitle%type;
  rowbook bebook%rowtype;//ÐÐÒýÓÃÀàÐÍ
BEGIN
  OPEN c1;
  LOOP
    FETCH c1 INTO bookno,booktitle;
    EXIT
  WHEN c1 %notfound;
    dbms_output.put_line('this string breaks here.'||bookno||booktitle);
  END LOOP;
END;

//´ø²ÎÊýµÄ¹â±ê
 Cursor 
 cemp(dno number) is select ename from emp where deptno = dno;   
 Open cemp(10);

2. rowtype
ÀûÓÃÕâ¸öÊý¾ÝÀàÐÍÔö¼Ó³ÌÐòµÄ½¡×³ÐÔ¡£²»»áÊܵ½±í½á¹¹¸ü¸Äµ¼Ö³ÌÐò¸ü¸Ä¡£
¼Ç¼¿ÉÒÔÕûÌ帳ֵ
rowtype²Î¿¼
rowtype²Î¿¼

//¶ÁÈëÊý¾Ýµ½rowtypeÀàÐÍÖÐ
create table testtable();
r testtable%rowtype;
select * into r from testtable where pno=...;
//rowtypeÀàÐÍÊý¾Ý²åÈë±íÖÐ
insert into testtable2 values r;
-----------------------------------------------------
-----------------------------------------------------
declare
  v_dept dept%rowtype;
begin
    v_dept.deptno := 60;
    v_dept.dname := 'sample';
    v_dept.loc := 'chicago';
    insert into dept values v_dept;
end;
declare
    v_dept dept%rowtype;
begin
    v_dept.deptno := 60;
    v_dept.dname := 'sample2';
    v_dept.loc := 'dallas';
    update dept set ROW=v_dept where deptno=v_dept.deptno;
end;

declare
  rwEmp  t_mst_employee%rowtype;
begin
  select * into rwEmp from t_mst_employee where emp_no='10001';
  rwEmp.emp_no := '20001';

  insert into t_mst_employee values rwEmp;
  update t_mst_employee set ROW=rwEmp where emp_no='3900';
end;

3. ¹ý³Ì

create or replace PROCEDURE "STATISTICS_ORDERSUMxxx"(
    branchNo BEbranch.branchNo%type,
    reportPerson VARCHAR2,
    ordersum_table_cursor OUT sys_refcursor)
IS
  testcur sys_refcursor;
  v_typegoodNo BEproduct.productClass%TYPE;    --Àà±ð±àºÅ
  v_pritypegoodNo BEproduct.productClass%TYPE; --ÉÏÒ»Óαê¶ÁÈ¡µÄÀà±ð±àºÅ
  v_branchNo BEbranch.branchNo%TYPE;           --Óαê¶ÁÈ¡µÄ·Öµê±àºÅ
  v_pribranchNo BEbranch.branchNo%TYPE;        --ÉÏÒ»¸öÓαê¶ÁÈ¡µÄ·Öµê±àºÅ
  v_branchname BEbranch.branchName%type;       --¸÷·Öµê
  v_branchsum NUMBER;                          --·Öµê×ÜÊý
  v_typenum   NUMBER;

  ordersum_table odreport1%rowtype;
  --Óα궨Òå
  CURSOR ordersum_cur(pno VARCHAR2)
  IS
    SELECT d.typegoodno,
      SUM(b.quantity)
    FROM BDprocureplan a,
      BDplandetail b,
      BEproduct c,
      DTtypegood d
    WHERE a.branchno   =pno
    AND a.planno       = b.planno
    AND b.productno    = c.productno
    AND c.productclass = d.typegoodno
    GROUP BY d.typegoodno;
  CURSOR branch_cur
  IS
    SELECT branchNo,branchName FROM BEbranch;
  maketime DATE;
  mycount  INT:=0;
BEGIN
  SELECT COUNT(*) INTO mycount FROM bebranch;
  OPEN branch_cur;
  LOOP
    FETCH branch_cur INTO v_branchNo,v_branchname;
    EXIT
  WHEN branch_cur%NOTFOUND;
    ordersum_table.branchname := v_branchname;
    ordersum_table.branchno := v_branchno;
    dbms_output.put_line(ordersum_table.branchname);
    OPEN ordersum_cur( v_branchNo );
    LOOP
      FETCH ordersum_cur INTO v_typegoodNo,v_typenum;
      EXIT
    WHEN ordersum_cur%NOTFOUND;
            CASE v_typegoodNo
      WHEN'001'THEN  
        ordersum_table.clothessum := ordersum_table.clothessum+v_typenum;
      WHEN'002'THEN
        ordersum_table.shoesum:=ordersum_table.shoesum+v_typenum;
      WHEN'003'THEN
        ordersum_table.foodsum:=ordersum_table.foodsu
Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºoracle¶ÓÁÐÀàÐÍ ÏÂһƪ£ºOracleÊ÷Ðλã×Ü--connect_by_root

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Linuxϵͳ¼ò½é (2025-12-25 21:55:25)
¡¤Linux°²×°MySQL¹ý³Ì (2025-12-25 21:55:22)
¡¤Linuxϵͳ°²×°½Ì³Ì£¨ (2025-12-25 21:55:20)
¡¤HTTP Åc HTTPS µÄ²î„ (2025-12-25 21:19:45)
¡¤ÍøÕ¾°²È«±ØÐ޿ΣºÍ¼ (2025-12-25 21:19:42)