Oracle存储1.1
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的更多相关文章
- oracle存储参数(storage子句)含义及设置技巧
可用于:表空间.回滚段.表.索引.分区.快照.快照日志 参数名称 缺省值 最小值 最大值 说明 INITIAL 5(数据块) 2(数据块) 操作系统限定 分配给Segment的第一个Extent的大小 ...
- oracle存储大文本clob、blob
oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...
- php调用oracle存储
//todo 调用oracle 存储$config = //数据库配置文件 里面包含 用户密码和host和端口以及dbname $conn = oci_connect($config['usernam ...
- Oracle存储——逻辑结构
Oracle 数存储——物理结构 Oracle存储结构:物理结构+逻辑结构 Oracle 数据库存储逻辑结构 Oracle Schema Objects(Schema Object Storage A ...
- Oracle存储函数,存储过程
一.Oracle存储函数:存储的PL/SQL语法块,完成特定的功能.1.语法: 函数关键字: function (1)创建函数 CREATE [OR REPLACE] FUNCTION <fun ...
- oracle存储海量数据 设计方案
日历基本活动表的数据有四千万条,在这些生产库业务中是小的了. 从三个方面提高效率: 1.sql语句 要绑定变量,sql语句书写规范这些,包括的就多了.主要目的就是提高数据库吞吐量及业务SQL响应时间. ...
- ibatis.net调用oracle存储过返回游标SYS_REFCURSOR结果集
最近在用ibatis.net框架和oracle 11g开发一套程序.其中有一个需求就是通过存储过程,查询指定条件的数据集. 但是在开发的过程中遇到了问题,问题如下: 1.如何通过ibatis.net执 ...
- Java调用Oracle存储Package
Oracle的包Package中可以有很多存储,可通过该包的总调入口在java中直接调用. //java调用oracle的package代码 public boolean cal() throws j ...
- ORACLE 存储函数
前奏: 必要的概念: ORACLE 提供能够把 PL/SQL 程序存储在数据库中.并能够在不论什么地方来运行它.这样就叫存储过 程或函数. 过程和函数统称为 PL/SQL 子程序.他们是被命名的 PL ...
- Oracle 存储结构三
Oracle数据库服务器自动管理空间的方法 段空间的分配 空间以区间的形式分配给段,区间是一组连续的Oracle块.每个数据文件都有一个位图,来描述文件中块的状态,块可能是空闲的,也可能是区间中已分配 ...
随机推荐
- iOS程序两中启动图方式和一些坑LaunchImage 和 Assets.xcassets(Images.xcassets)
一.通过LaunchScreen.storyboard 作启动图 1>在LaunchScreen.storyboard中拖拽一个imageView放上启动图片 注意:记得勾选右边的 User a ...
- day 42 03--CSS布局设置
03--CSS布局设置 本节目录 一 盒模型 二 padding(内边距) 三 boder(边框) 四 简单认识一下margin(外边距) 五 标准文档流 六 块级元素和行内元素 七 浮动 八 ...
- PAT甲级——A1099 Build A Binary Search Tree
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following propertie ...
- 群晖系统下btfs(占用5%)和ext4文件格式的硬盘占用和选择
1个人感觉选择ext4就可以,毕竟重要数据会设置raid1 不重要的数据也不需要快照什么的 商用除外 对于一个4t的硬盘 实际容量3726G 使用ext4可用空间3666G,群晖 占用60G大概1.6 ...
- spring retry 重试机制完整例子
public static Boolean vpmsRetryCoupon(final String userId) { // 构建重试模板实例 RetryTemplate retryTemplate ...
- 上传本地项目到码云(gitee)
1.码云上创建一个项目比如zhirong 2.本地创建一个文件夹F:\workspace\zhirong-items,进入zhirong-items打开git bash 3.执行git init ,这 ...
- python学习笔记3.3_json解析
一.json文件读取 源文件:exampl.json 二.json在线解析 常用网站:https://www.json.cn/ 三.数据导出为json格式文件
- nginx+supervisor 前后端分离项目的发布流程
[第一部分] 前端发布(vue项目),假设项目名为demo_vue Step1:编译打包前端项目 cd到demo_vue目录下, 执行cnpm run build:prod命令,生成disc文件夹 S ...
- Spring Boot使用Swagger2
1.添加Swagger2依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>spri ...
- wpf中数据绑定和INotifyPeropertyChanged的理解
原创:转载请注明出处. 先说数据绑定: XAML代码: <Window x:Class="数据绑定和INotifyPropertyChanged.Window1" Loade ...