zoukankan      html  css  js  c++  java
  • ORACLE1.25 动态SQL

    -- 一、立刻执行SQL语句

    declare

      mysql varchar2(200);  -- 保存SQL语句(所谓的动态SQL,就是一个可变的变量)

    begin

      mysql := 'select 1+1 from dual';

      dbms_output.put_line(mysql);

    end;

    -----------

    declare

      mysql varchar2(200);  -- 保存SQL语句(所谓的动态SQL,就是一个可变的变量)

    begin

      mysql := 'create table aa(a1 varchar2(100))';

      execute immediate mysql;

    end;

     

    drop table aa;

    create table aa(a1 varchar2(100))

    select * from aa

    --------------------

     

    begin

      create table aa_20180402(a1 varchar2(100));

    end;

    -------------------

    declare

      mysql varchar2(200);  -- 保存SQL语句(所谓的动态SQL,就是一个可变的变量)

      today varchar2(8);

    begin

      select to_char(sysdate,'yyyyMMdd') into today from dual;

      mysql := 'create table aa_'|| today ||'(a1 varchar2(100))';

      dbms_output.put_line(mysql); 

      execute immediate mysql;

    end;

     

     

    select to_char(sysdate,'yyyyMMdd') from dual

     

    -- 二、立刻执行SQL语句,并赋值给某个变量

    select * from t_user5

    select * from t_user6

    如果 xxx 是一张表,我们就插入1条记录

    如果 xxx 是一个视图,那我们就提示这是一个视图,

    不能插入数据

     

    create view t_user6 as select * from t_user5

    select upper('t_user6') from dual

    select OBJECT_TYPE from dba_objects where object_name=upper('t_user6');

    select OBJECT_TYPE from dba_objects where object_name=upper('t_user5');

    -------------------------------------

    select * from tt3

    -------------

    create or replace procedure p_a1(obj_name in varchar2)

    is

      my_str1 varchar2(100);

      xxx tt3%rowtype;

    begin

      -- 拼凑1条可执行的动态SQL ,保存sql语句到my_str1 这个变量中

      my_str1 := 'select * from tt3 where user_name=';

      my_str1 := my_str1 || '''';

      my_str1 := my_str1 || obj_name;

      my_str1 := my_str1 || '''';

      --dbms_output.put_line(my_str1);  --调试用

      execute immediate my_str1 into xxx;

      dbms_output.put_line(xxx.city);

    end;

    ------------------------------

    -- 三、带参数的动态SQL(可以把结果存储到某个变量)

     

    create or replace procedure p_a1(obj_name in varchar2)

    is

      my_str1 varchar2(100);

      xxx tt3%rowtype;

    begin

      -- 拼凑1条可执行的动态SQL ,保存sql语句到my_str1 这个变量中

      my_str1 := 'select * from tt3 where user_name=:1';

      --dbms_output.put_line(my_str1);  --调试用

      execute immediate my_str1 into xxx using '小明';

      dbms_output.put_line(xxx.city);

    end;

  • 相关阅读:
    Win10/UWP开发-Ink墨迹书写
    Win10/UWP 让你的App使用上扫描仪
    Win10/UWP新特性—Drag&Drop 拖出元素到其他App
    UWP/Win10新特性系列—Drag&Drop 拖动打开文件
    1、WIN2D学习记录(win2d实现JS雨天效果)
    Windows 通用应用尝试开发 “51单片机汇编”总结
    D2.Reactjs 操作事件、状态改变、路由
    D1.1.利用npm(webpack)构建基本reactJS项目
    UWP 动画系列之模仿网易云音乐动画
    字符设备驱动之Led驱动学习记录
  • 原文地址:https://www.cnblogs.com/wyj1212/p/8693570.html
Copyright © 2011-2022 走看看