- 浏览: 822612 次
- 性别:
- 来自: 株洲->深圳
文章分类
- 全部博客 (283)
- JAVA (54)
- 数据库 (25)
- Linux (22)
- Spring (9)
- Hibernate (7)
- mybatis (1)
- struts (10)
- javascript (22)
- Web (11)
- 异常 (30)
- 工具 (21)
- pay (9)
- 软件相关 (7)
- 其它 (28)
- python (1)
- 缓存 (9)
- 面试题 (2)
- 代码规范 (14)
- 网络编程 (1)
- 架构设计 (1)
- 程序测试 (3)
- 移动 (1)
- 安全 (2)
- 服务器 (4)
- 程序员 (1)
- php (4)
- 非技术 (7)
- web容器 (3)
- 竞彩篮球 (1)
- nginx (5)
- 加密 (2)
- jquery (2)
- 原理 (2)
- 项目管理 (1)
- www..betradar.com (0)
- www.betradar.com (1)
- 爬虫 (1)
最新评论
-
July01:
有一款web 打印控件StratoIO,浏览器和系统的兼容性都 ...
WEB免费打印控件推荐(4款) -
lihaimian:
你好,有个问题咨询一个,为何我在java中,无法使用与运算符, ...
位运算、异或的实际应用 -
小黄牛:
很好谢谢分享!推荐几篇spring boot基础入门文章:ht ...
Spring Boot 快速入门 (官方quick start) -
littlesheep:
我按照你的方法从新生成了密钥可是还是报者个错误...
狗日的支付宝 -
di1984HIT:
学习了~~~
javassist:增强型的java反射工具,获取方法参数名
create or replace procedure print_insert(v_tname varchar2, v_cbatch number default 0) /* v_tname 要输出sql的表名 v_cbatch 输出commit间隔 */ as /* 声明动态游标变量 */ type cur_alldata is ref cursor; l_alldata cur_alldata; /* 将单行数据写入v_row*/ v_sql varchar2(3999); v_row varchar2(3999); /* 函数的前向声明 */ function formatfield(v_tname varchar2, v_cname varchar2, v_colno number) return varchar2; /* 格式化数据输出 */ function formatdata(v_tname varchar2, v_row varchar2) return varchar2 as v_ldata varchar2(32765); v_rdata varchar2(32765); v_cname varchar2(3999); v_instr number(10); v_count number(6); begin v_instr := instr(v_row, '(', 1, 2); --INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) v_ldata := substr(v_row, 1, v_instr); v_rdata := substr(v_row, v_instr + 1); v_instr := instr(v_rdata, ')', -1, 1); v_rdata := substr(v_rdata, 1, v_instr - 1); v_count := 0; loop v_instr := instr(v_rdata, ','); exit when v_instr = 0; v_cname := substr(v_rdata, 1, v_instr - 1); v_rdata := substr(v_rdata, v_instr + 1); v_count := v_count + 1; /* 格式化不同的数据类型 */ v_cname := formatfield(v_tname, v_cname, v_count); /* 将处理后的字段值加入v_ldata */ if v_count = 1 then v_ldata := v_ldata || v_cname; else v_ldata := v_ldata || ',' || v_cname; end if; end loop; /* 添加最后一个字段的值 */ if v_count = 1 then v_ldata := v_ldata || formatfield(v_tname, v_rdata, v_count + 1) || ');'; else v_ldata := v_ldata || ',' || formatfield(v_tname, v_rdata, v_count + 1) || ');'; end if; dbms_output.put_line(v_ldata); return v_ldata; end; /* 针对不同的数据类型进行处理 */ function formatfield(v_tname varchar2, v_cname varchar2, v_colno number) return varchar2 as v_name varchar2(3999); v_type varchar2(99); begin select coltype into v_type from col where tname = upper(v_tname) and colno = v_colno; --判断数据类型 if v_type = 'DATE' then v_name := 'to_date(' || '''' || v_cname || '''' || ',' || '''' || 'yyyy-mm-dd hh24:mi:ss' || '''' || ')'; elsif v_type = 'VARCHAR2' then v_name := '''' || v_cname || ''''; elsif v_type = 'CHAR' then v_name := '''' || v_cname || ''''; else v_name := v_cname; end if; return v_name; end; /* 求输入表的字段列表 */ function getfields(v_tname varchar2) return varchar2 as v_fields varchar2(3999); v_fieldName varchar2(3999); begin for cur_fname in (select cname, coltype from col where tname = upper(v_tname) order by colno) loop if v_fields is null then v_fields := 'nvl(' || cur_fname.cname || ',' || '''' || '0' || '''' || ')'; else v_fields := v_fields || '||'',''||' || 'nvl(' || cur_fname.cname || ',' || '''' || '0' || '''' || ')'; end if; if v_fieldName is null then v_fieldName := cur_fname.cname; else v_fieldName := v_fieldName || ',' || cur_fname.cname; end if; end loop; v_fields := 'select ' || '''' || 'insert into ' || v_tname || ' (' || v_fieldName || ') values(' || '''' || '||' || v_fields || '||' || '''' || ')' || '''' || ' from ' || v_tname; return v_fields; end; begin DBMS_OUTPUT.ENABLE(buffer_size => null); --解决PLSQL Developer 出现ORU-10027: buffer overflow, limit of 10000 bytes execute immediate 'alter session set nls_date_format=' || '''' || 'yyyy-mm-dd hh24:mi:ss' || ''''; dbms_output.put_line(' *** 表SQL输出 *** '); v_sql := getfields(v_tname); --dbms_output.put_line(v_sql); open l_alldata for v_sql; loop fetch l_alldata into v_row; exit when l_alldata%notfound; --dbms_output.put_line(v_row); dbms_output.put_line(formatdata(v_tname, v_row)); if mod(l_alldata%rowcount, v_cbatch) = 0 then dbms_output.put_line('commit;'); end if; end loop; close l_alldata; end;
原博客:http://blog.itpub.net/xzh2000
对原作者的代码进行了相应的修改。
在命令行中执行:
set serveroutput on; --设置服务器输出 exec print_insert('表名',100);
--获取表的相关字段属性(相当于java反射获取对象属性)
select * from col where tname = upper('表名');
评论
2 楼
wenjinglian
2013-04-12
sangshuye 写道
哥们,我用的怎么不好使啊?
可能是版本问题,我当时是oracle10g
1 楼
sangshuye
2013-04-07
哥们,我用的怎么不好使啊?
发表评论
-
MySQL: InnoDB 还是 MyISAM?
2013-10-15 10:08 1366MyISAM存储引擎 ... -
linux服务相关操作
2013-08-10 10:12 990============================== ... -
mysql用户创建、授权、删除、修改密码
2013-08-10 10:08 13121.新建用户。 //登录MYSQL @>mysql ... -
Data truncation: Incorrect datetime value: '' for column 'createTime' at row
2013-03-22 17:11 21998mysql SQL Error: 0, SQLState: ... -
查询数据库中不存在的ID
2012-11-28 12:37 1588假设你数据库有个A表: ID NAME ... -
exist,in,instr
2012-09-21 12:37 0select v.id, v.name, v.st ... -
oracle 中将 多行值合并成一行
2012-07-09 12:42 3065例:field1 field2 A ... -
windows环境mysql5.0升级mysql5.5
2012-04-07 17:46 2389本地升级测试没什么压力。 更神奇的是将老版本的mysql数据 ... -
mysql 简单命令学习
2012-04-07 16:34 1167一、连接MYSQL。格式: mysql -h主机地址 ... -
oracle锁表解除
2012-03-20 18:36 1545--Oracle数据库操作中,我们有时会用到锁表查询以及解锁和 ... -
oracle 时间相减,月份相加减
2012-03-15 11:06 11307oracle 两个时间相减默认的是天数 oracle ... -
oracle 方法通过用户id查询金额
2012-03-14 15:27 1534create or replace function g ... -
mysql常见错误
2011-12-31 12:53 3198常见错误及处理办法 1、[Err] 1064 - Yo ... -
InnoDB与Myisam的六大区别
2011-12-30 10:52 1050本文整理了Mysql 两大常用的存储引擎MyISAM,I ... -
mysql嵌套if演示
2011-12-24 23:06 3701DELIMITER $$ CREATE ... -
MySQL数据类型简介
2011-11-29 00:04 1086名称 长度 ... -
oracle正则使用事例
2011-07-11 16:09 1237--除去字段中的中文 select regexp_re ... -
oracle 游标的高级用法
2011-06-30 00:04 13241.定义带有参数的游标调用带有参数的游标,可以取得不同的查询结 ... -
Oracle to_date
2011-06-29 11:12 1246to_date('2011-04-25 15:15:12 ... -
Oracle function 个人所得税
2011-06-20 18:23 1251起征税3000 create or replace f ...
相关推荐
在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...
总的来说,“Oracle导出INSERT语句V1.1”是数据库管理员和开发人员的强大助手,它可以简化数据迁移和备份过程,提高工作效率。了解如何有效利用这个工具,将有助于我们在Oracle数据库管理中更高效地完成任务。
表数据生成insert语句的存储过程;表数据生成insert语句的存储过程;
"Oracle导出INSERT语句V1.1.1"就是这样一个实用工具,它能帮助我们自动化这个过程。 该工具的主要功能是提取Oracle数据库表中的记录,并自动生成相应的INSERT语句,格式化后的SQL语句便于在不同的Oracle实例或者...
当我们需要导出数据库表的数据为INSERT语句时,通常会用到一些数据库管理工具,如MySQL Workbench、pgAdmin(PostgreSQL)或者Oracle SQL Developer等。这些工具通常提供了导出数据为脚本的功能,其中包括了针对每个...
- **导出INSERT语句**:首先,使用`SPOOL filename.sql`命令指定一个输出文件,比如`filename.sql`。然后,执行`SELECT * FROM table_name`来查询你需要的表,此时输出会被重定向到文件中。为了将结果转化为INSERT...
本主题聚焦于从Sybase数据库中导出全部表的建表语句,并转换为Oracle、MySQL和Sybase自身的格式。这样的操作对于跨平台的数据迁移、数据库结构比对以及系统兼容性测试具有很高的实用价值。 首先,让我们深入了解`...
这类工具通常用于将已有的数据库数据导出为INSERT语句,以便在其他环境中重新创建相同的数据结构和内容,或者作为备份和恢复策略的一部分。 在数据库管理中,手动编写大量的INSERT语句是一项耗时且容易出错的任务。...
Navicat Premium 10.1.7 提供了一项独特功能,即能够将表中的数据导出为Insert语句。这对于备份数据、在不同环境之间迁移数据或者在代码中动态生成插入操作特别有用。用户可以选择特定的行或整个表格,Navicat会自动...
首先,它可以实现自动化导出insert 语句,减少手动编写的工作量。其次,它可以支持多种数据库管理系统,包括 Oracle、MySQL 等。最后,它可以提高工作效率和准确性。 缺点 虽然使用 Java 类实现导出各种数据库 ...
此软件用于把数据库里的数据导出为指定数据库类型的insert语句,用于数据备份或迁移到另一个数据库, 大文本和二进制字段被忽略。 当前支持oracle、sybase、mysql和ms sqlServer数据库。 你可以修改参数文件、增加新...
接着,对于每个列,我们根据其数据类型生成相应的INSERT语句片段。例如,对于VARCHAR和CHAR类型的列,数据会被包围在单引号中;对于非字符串类型,如INT,数据将直接插入。注意,时间戳、图像、文本、N文本以及SQL_...
在Oracle SQL中,我们可以使用PL/SQL过程或函数来操作BLOB字段,例如INSERT、UPDATE和SELECT语句。对于导出,我们需要一个能够读取BLOB数据并将其转换为可保存到文件系统的格式的程序。 以下是导出图片的一些关键...
### 导入导出Oracle分区表数据 #### 一、概述 在Oracle数据库管理中,对分区表进行数据的导入与导出是一项常见的任务。分区技术可以显著提高大型表的性能,尤其是在处理大规模数据集时。为了有效地管理和迁移这些...
- `sqlplus`:通过SQL命令行工具,配合`INSERT INTO SELECT`语句或`CREATE TABLE AS SELECT`进行数据导入导出。 - 第三方工具:如本例中的Java桌面程序,提供图形化界面,简化操作流程。 6. **导入导出参数设置**...
沈阳信软计算机有限公司的员工在业余时间开发了这个小工具,实现了SQLServer2005的数据导出,导出的数据是 [表名].sql。 这个文件可以导入到任何数据库里,实现了数据库切换。开发工作在SQLServer2005里比较方便,但...
### Oracle 数据库表空间管理与数据导入导出详解 #### 表空间概念及管理 在Oracle数据库中,**表空间**是逻辑存储结构的一部分,用于组织数据库中的数据和索引。一个表空间由一个或多个数据文件组成,这些数据文件...
这个数据库助手能够自动根据表结构生成INSERT语句,极大地提高了工作效率。同时,它还能生成UPDATE语句,这对于数据修正或者同步操作提供了极大的便利。 其次,该工具集成了Python脚本调试功能。Python作为一门广泛...
Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于企业级数据存储和管理。批处理文件(如.bat文件)在Windows环境中是一种高效的方式,可以自动化执行一系列命令,包括连接数据库和执行SQL语句。在这个...