1.生成一个表的简单sql语句

CREATE OR REPLACE PROCEDURE proc_AutoGenerateSQL
(
  tableName   VARCHAR2 ,--参数 需要操作的表名 大小写区别
  tableType   NUMBER , --  参数  对表操作类型  0 =insert 1 =update 2=select
  sqlOrNet    NUMBER  ,-- 参数 需要生成那种格式sql 1 = sql  0  =net
  tableOutStr OUT VARCHAR2 --参数 输出需要的sql
)
IS
    sql_columns VARCHAR2(2000);
    sql_columnvalues VARCHAR2(2000);
  BEGIN
      BEGIN
        DECLARE
           CURSOR  c_t IS
           SELECT   column_id, column_name, data_type
           FROM user_tab_columns where table_name = ''||tableName||'' order by column_id;
           c_r  c_t%ROWTYPE;
           --开始游标创建需要列和值
                     BEGIN
           OPEN c_t;
           LOOP
           FETCH c_t INTO c_r;
           EXIT WHEN c_t%NOTFOUND;
                   IF  sql_columns<>' ' THEN
                                BEGIN
                                      --sql_columns := sql_columns||','||c_r.column_name;
                              IF c_r.data_type = 'DATE' THEN
                       IF  tableType =1 THEN  -- update
                           IF sqlOrNet = 1 THEN   --1 sql  0 net
                                sql_columns :=sql_columns||','||c_r.column_name||'='||''''||to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss')||'''';
                           ELSE
                                sql_columns :=sql_columns||','||c_r.column_name||'=:'||c_r.column_name;
                           END IF;
                       ELSE
                                                sql_columns := sql_columns||','||c_r.column_name;
                        sql_columnvalues:=sql_columnvalues||','||''''||to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss');
                               END IF ;
                                        ELSIF c_r.data_type = 'NUMBER' THEN
                                           IF  tableType =1 THEN  -- update
                                                   IF sqlOrNet = 1 THEN   --1 sql  0 net
                                                      sql_columns :=sql_columns||','||c_r.column_name||'='||0;
                                                     ELSE
                                                            sql_columns :=sql_columns||','||c_r.column_name||'=:'||c_r.column_name;
                                                   END IF;
                                          ELSE
                                             sql_columns := sql_columns||','||c_r.column_name;
                                           sql_columnvalues:=sql_columnvalues||','||0;
                                             END IF ;
                                        ELSE
                                             IF  tableType =1 THEN  -- update
                                                   IF sqlOrNet = 1 THEN   --1 sql  0 net
                                                  sql_columns :=sql_columns||','||c_r.column_name||'='||'''''';
                                                     ELSE
                                                            sql_columns :=sql_columns||','||c_r.column_name||'=:'||c_r.column_name;
                                                   END IF;
                                           ELSE
                                                    sql_columns := sql_columns||','||c_r.column_name;
                                                  sql_columnvalues:=sql_columnvalues||','||'''''';
                                            END IF ;
                                        END IF ;
                                END ;
                            ELSE
                                     BEGIN
                                        IF c_r.data_type = 'DATE' THEN
                                            IF  tableType =1 THEN  -- update
                                                   IF sqlOrNet = 1 THEN   --1 sql  0 net
                                                      sql_columns :=c_r.column_name||'='||''''||to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss')||'''';
                                                     ELSE
                                                            sql_columns :=c_r.column_name||'=:'||c_r.column_name;
                                                   END IF;
                                           ELSE
                                             sql_columns := sql_columns||c_r.column_name;
                                           sql_columnvalues:=sql_columnvalues||''''||to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss')||'''';
                                             END IF;
                                        ELSIF c_r.data_type = 'NUMBER' THEN
                                              IF  tableType =1 THEN  -- update
                                                         IF sqlOrNet = 1 THEN   --1 sql  0 net
                                                                    sql_columns :=c_r.column_name||'='||0;
                                                         ELSE
                                                                 sql_columns :=c_r.column_name||'=:'||c_r.column_name;
                                                         END IF;
                                                 ELSE
                                                 sql_columns := sql_columns||c_r.column_name;
                                                 sql_columnvalues:=sql_columnvalues||0;
                                                 END IF;
                                        ELSE
                                              IF  tableType =1 THEN  -- update
                                                         IF sqlOrNet = 1 THEN   --1 sql  0 net
                                                                    sql_columns :=c_r.column_name||'='||'''''';
                                                         ELSE
                                                                    sql_columns :=c_r.column_name||'=:'||c_r.column_name;
                                                         END IF;
                                                 ELSE
                                                     sql_columns := sql_columns||c_r.column_name;
                                                     sql_columnvalues:=sql_columnvalues||'''''';
                                                 END IF;
                                        
                                        END IF ;
                                     END;
                          END IF ;
                            
           END LOOP;
           --关闭游标
           CLOSE  c_t;
                     END;
      END;
            --0 =insert 1 =update 2=delete 3=select  
            --生成对于的sql
            IF tableType=0 THEN
      tableOutStr:='insert into '||tableName||' ('||sql_columns||') values('||sql_columnvalues||')';
            ELSIF tableType=1 THEN
            tableOutStr:='update  '||tableName||' set  '||sql_columns;
            ELSE
            tableOutStr:='select   '||sql_columns||' from   '||tableName;
            END IF ;
  END;

Oracle存储1.1的更多相关文章

  1. oracle存储参数(storage子句)含义及设置技巧

    可用于:表空间.回滚段.表.索引.分区.快照.快照日志 参数名称 缺省值 最小值 最大值 说明 INITIAL 5(数据块) 2(数据块) 操作系统限定 分配给Segment的第一个Extent的大小 ...

  2. oracle存储大文本clob、blob

    oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...

  3. php调用oracle存储

    //todo 调用oracle 存储$config = //数据库配置文件 里面包含 用户密码和host和端口以及dbname $conn = oci_connect($config['usernam ...

  4. Oracle存储——逻辑结构

    Oracle 数存储——物理结构 Oracle存储结构:物理结构+逻辑结构 Oracle 数据库存储逻辑结构 Oracle Schema Objects(Schema Object Storage A ...

  5. Oracle存储函数,存储过程

    一.Oracle存储函数:存储的PL/SQL语法块,完成特定的功能.1.语法: 函数关键字: function (1)创建函数 CREATE [OR REPLACE] FUNCTION <fun ...

  6. oracle存储海量数据 设计方案

    日历基本活动表的数据有四千万条,在这些生产库业务中是小的了. 从三个方面提高效率: 1.sql语句 要绑定变量,sql语句书写规范这些,包括的就多了.主要目的就是提高数据库吞吐量及业务SQL响应时间. ...

  7. ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集

    最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执 ...

  8. Java调用Oracle存储Package

    Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...

  9. ORACLE 存储函数

    前奏: 必要的概念: ORACLE 提供能够把 PL/SQL 程序存储在数据库中.并能够在不论什么地方来运行它.这样就叫存储过 程或函数. 过程和函数统称为 PL/SQL 子程序.他们是被命名的 PL ...

  10. Oracle 存储结构三

    Oracle数据库服务器自动管理空间的方法 段空间的分配 空间以区间的形式分配给段,区间是一组连续的Oracle块.每个数据文件都有一个位图,来描述文件中块的状态,块可能是空闲的,也可能是区间中已分配 ...

随机推荐

  1. SpringBoot 02_返回json数据

    在SpringBoot 01_HelloWorld的基础上来返回json的数据,现在前后端分离的情况下多数都是通过Json来进行交互,下面就来利用SpringBoot返回Json格式的数据. 1:新建 ...

  2. 07_jQuery对象初识(五)事件(非常重要)

    1. 目前为止学过的绑定事件的方式 1. 在标签里面写 onclick=foo(this); 2. 原生DOM的JS绑定 DOM对象.onclick=function(){...} 3. jQuery ...

  3. mybatis第二篇—参数绑定

    不管我们在做数据库作业或者任务还是当时的仅靠jdbc来写一个管理系统的时候,sql语句需要一些参数,从而来实现模糊查询,精确查询,插入数据,更新数据和删除数据.这些参数,在mybatis里面,又该如何 ...

  4. tensorflow+inceptionv3图像分类网络结构的解析与代码实现

    tensorflow+inceptionv3图像分类网络结构的解析与代码实现 论文链接:论文地址 ResNet传送门:Resnet-cifar10 DenseNet传送门:DenseNet SegNe ...

  5. Jeecms6中后台控制层Action如何将值传入前台视图层模板中的?

    转载:https://blog.csdn.net/wsm201005030226/article/details/44343069     Jeecms后台控制层如何传值到前台freemarker的? ...

  6. Pycharm 添加第三方库

    坏境:pycharm专业版 点击:file ——>setting ——>Project:python source code ——>Project interpreter ——> ...

  7. webServices学习四(---WebService监听工具)

    之前我们使用过HttpWatch获取的HTTP的调用过程,并获得了HTTP的请求头及其他请求的详细信息. 既然WebServie也是通过HTTP进行通信的,能不使用HTTPWatch来获取它的请求过程 ...

  8. yum与rpm常用选项

    rpm常用的命令组合: rpm 1.对系统中已安装软件的查询-q:查询系统已安装的软件-qa:查询系统所有已安装包-qf:查询一个已经安装的文件属于哪个软件包-ql:查询已安装软件包都安装到何处-qi ...

  9. tp5 报 A non well formed numeric value encountered 的错解决办法

    thinkphp5出现A non well formed numeric value encountered的解决办法修改formatDateTime方法如下 默认值: if (is_null($th ...

  10. [Array]217.Contains Duplicate

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...