zoukankan      html  css  js  c++  java
  • 【oracle】变量,流程控制语句,子程序中的DML,DDL,TCL语句,子程序中的数据类型

    1117-01 变量,流程控制语句,子程序中的DML,DDL,TCL语句,子程序中的数据类型

    变量:
    绑定变量 variable,绑定常量 define
    局部变量
    参数变量
    循环计数变量


    赋值语句
    1.赋值符 :=
    2.select into语句

    流程控制语句
    1.顺序
    2.分支
    if <expression> then
    <body>
    end if;

    if <expression> then
    <body>
    else
    <body>
    end if;

    if <expression> then
    <body>
    elsif
    <body>
    end if;
    3.循环
    --当型
    loop
    exit when <expression>;
    <body>
    end loop;
    --直到型
    loop
    <body>
    exit when <expression>;
    end loop;
    --其他
    loop
    <body1>
    exit when <expression>;
    <body2>
    end loop;
    说明:其他这种写法,很适合游标的fetch


    例子:
    set serveroutput on;

    declare
    vi_num integer := 1;
    vi_sum integer default 0;
    begin
    loop
    exit when vi_num > 100;
    vi_sum := vi_sum + vi_num;
    vi_num := vi_num + 1;
    end loop;
    dbms_output.put_line('vi_num='||vi_num||',vi_sum='||vi_sum);
    end;
    /

    --当型
    while <expression> loop
    <body>
    end loop;

    for <variable> in <value1> .. <value2>|<cursor>|<select语句>
    loop
    <body>
    end loop;

    查询语句
    1.静态语句
    select into <var> from <结果集>
    2.动态语句
    execute immediate <vv_sql> into <var>;

    例子:
    declare
    vv_sql varchar2(1000);
    vv_brand_code varchar2(30);
    vv_brand_name varchar2(30);
    begin
    vv_brand_code := 'B01'; --变量vv_brand_code的赋值 必须在 vv_sql赋值之前
    vv_sqp := 'select brand_name from td_brand where brand_code=upper('||''''||vv_brand_code||''''||')';
    execute immediate vv_sql into vv_brand_name;
    exception
    when others then
    dbms_output.put_line(sqlcode||','||substr(sqlerrm,1,200)||',vv_sql='||vv_sql);
    end;
    /


    DML语句:insert,update,delete
    1.静态语句
    2.动态语句
    execute immediate <str_variable>;

    TCL语句:commit,rollback
    1.静态语句
    2.动态语句


    必须使用动态语句的场景:
    1.DML语句
    2.表名,字段名 是 使用变量拼接得到的
    注意:动态语句的sql不能以;结尾,否则报错。


    子程序中的数据类型
    1.基本数据类型
    2.列类型,行类型
    <table>.<column>%type
    <table>%rowtype
    <cursor>%rowtype
    3.exception
    4.cursor
    6.复合类型:记录 和 集合

  • 相关阅读:
    有用网站
    html5页面布局总结
    video和audio支持格式
    关于浏览器缓冲
    java常见面试题汇总
    jvm常用相关参数
    规律字符串拼接
    线程基础知识
    Kafka学习
    Redis学习
  • 原文地址:https://www.cnblogs.com/greenZ/p/8721814.html
Copyright © 2011-2022 走看看