- 浏览: 226116 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
插上翅膀的小猪:
同意三楼的意见。
下载服务器上的文件-纯java处理 -
ITQCF:
一楼所言极是啊,encodeFileName这个方法为嘛找不到 ...
下载服务器上的文件-纯java处理 -
u011296404:
这个不适用与ie浏览器
下载服务器上的文件-纯java处理 -
冬天秋天:
博主 这个貌似在oracle 数据库下没有成功啊……
更新一个表的字段值等于另一个表的字段值的SQL语句 -
pangpang514:
WebUtils是在org.springframework.w ...
下载服务器上的文件-纯java处理
平面数据的导出与导入_1 较少数据的导出 1、 proc /* ** 程序名称 load_acctlist.pc ** 用途:将外部文件数据加载到数据库 */ #include <stdio.h> #include <string.h> #include <ctype.h> #define MAX_VNAME_LEN 30 #define MAX_INAME_LEN 30 static char * USERID = NULL; static char * SQLSTMT = NULL; static char * ARRAY_SIZE = "10"; #define vstrcpy( a, b ) \ (strcpy( a.arr, b ), a.len = strlen( a.arr ), a.arr) EXEC SQL INCLUDE sqlca; EXEC SQL INCLUDE sqlda; extern SQLDA *sqlald(); extern void sqlclu(); static void die( char * msg ) { fprintf( stderr, "%s\n", msg ); exit(1); } /* this array contains a default mapping I am using to constrain the lengths of returned columns. It is mapping, for example, the Oracle NUMBER type (type code = 2) to be 45 characters long in a string. */ static int lengths[] = { -1, 0, 45, 0, 0, 0, 0, 0, 2000, 0, 0, 18, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 512, 2000 }; static void process_parms( argc, argv ) int argc; char * argv[]; { int i; for( i = 1; i < argc; i++ ) { if ( !strncmp( argv[i], "userid=", 7 ) ) USERID = argv[i]+7; else if ( !strncmp( argv[i], "sqlstmt=", 8 ) ) SQLSTMT = argv[i]+8; else if ( !strncmp( argv[i], "arraysize=", 10 ) ) ARRAY_SIZE = argv[i]+10; else { fprintf( stderr, "usage: %s %s %s\n", argv[0], "userid=xxx/xxx sqlstmt=query ", "arraysize=<NN>\n" ); exit(1); } } if ( USERID == NULL || SQLSTMT == NULL ) { fprintf( stderr, "usage: %s %s %s\n", argv[0], "userid=xxx/xxx sqlstmt=query ", "arraysize=<NN>\n" ); exit(1); } } static void sqlerror_hard() { EXEC SQL WHENEVER SQLERROR CONTINUE; fprintf(stderr,"\nORACLE error detected:"); fprintf(stderr,"\n% .70s \n", sqlca.sqlerrm.sqlerrmc); EXEC SQL ROLLBACK WORK RELEASE; exit(1); } static SQLDA * process_1(char * sqlstmt, int array_size ) { SQLDA * select_dp; int i; int j; int null_ok; int precision; int scale; int size = 10; fprintf( stderr, "Unloading '%s'\n", sqlstmt ); fprintf( stderr, "Array size = %d\n", array_size ); EXEC SQL WHENEVER SQLERROR DO sqlerror_hard(); EXEC SQL PREPARE S FROM :sqlstmt; EXEC SQL DECLARE C CURSOR FOR S; if ((select_dp = sqlald(size,MAX_VNAME_LEN,MAX_INAME_LEN)) == NULL ) die( "Cannot allocate memory for select descriptor." ); select_dp->N = size; EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp; if ( !select_dp->F ) return NULL; if (select_dp->F < 0) { size = -select_dp->F; sqlclu( select_dp ); if ((select_dp = sqlald (size, MAX_VNAME_LEN, MAX_INAME_LEN)) == NULL ) die( "Cannot allocate memory for descriptor." ); EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp; } select_dp->N = select_dp->F; for (i = 0; i < select_dp->N; i++) select_dp->I[i] = (short *) malloc(sizeof(short) * array_size ); for (i = 0; i < select_dp->F; i++) { sqlnul (&(select_dp->T[i]), &(select_dp->T[i]), &null_ok); if ( select_dp->T[i] < sizeof(lengths)/sizeof(lengths[0]) ) { if ( lengths[select_dp->T[i]] ) select_dp->L[i] = lengths[select_dp->T[i]]; else select_dp->L[i] += 5; } else select_dp->L[i] += 5; select_dp->T[i] = 5; select_dp->V[i] = (char *)malloc( select_dp->L[i] * array_size ); for( j = MAX_VNAME_LEN-1; j > 0 && select_dp->S[i][j] == ' '; j--); fprintf (stderr, "%s%.*s", i?",":"", j+1, select_dp->S[i]); } fprintf( stderr, "\n" ); EXEC SQL OPEN C; return select_dp; } static void process_2( SQLDA * select_dp, int array_size ) { int last_fetch_count; int row_count = 0; short ind_value; char * char_ptr; int i, j; for ( last_fetch_count = 0; ; last_fetch_count = sqlca.sqlerrd[2] ) { EXEC SQL FOR :array_size FETCH C USING DESCRIPTOR select_dp; for( j=0; j < sqlca.sqlerrd[2]-last_fetch_count; j++ ) { for (i = 0; i < select_dp->F; i++) { ind_value = *(select_dp->I[i]+j); char_ptr = select_dp->V[i] + (j*select_dp->L[i]); printf( "%s%s", i?",":"", ind_value?"(null)":char_ptr ); } row_count++; printf( "\n" ); } if ( sqlca.sqlcode > 0 ) break; } sqlclu(select_dp); EXEC SQL CLOSE C; EXEC SQL COMMIT WORK; fprintf( stderr, "%d rows extracted\n", row_count ); } main( argc, argv ) int argc; char * argv[]; { EXEC SQL BEGIN DECLARE SECTION; VARCHAR oracleid[50]; EXEC SQL END DECLARE SECTION; SQLDA * select_dp; process_parms( argc, argv ); /* Connect to ORACLE. */ vstrcpy( oracleid, USERID ); EXEC SQL WHENEVER SQLERROR DO sqlerror_hard(); EXEC SQL CONNECT :oracleid; fprintf(stderr, "\nConnected to ORACLE as user: %s\n\n", oracleid.arr); EXEC SQL ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS'; select_dp = process_1( SQLSTMT, atoi(ARRAY_SIZE) ); process_2( select_dp , atoi(ARRAY_SIZE)); /* Disconnect from ORACLE. */ EXEC SQL COMMIT WORK RELEASE; exit(0); } 2、过程 create or replace function dump_txt( p_query in varchar2, p_separator in varchar2 default ',', p_dir in varchar2 , p_filename in varchar2 ) return number is l_output utl_file.file_type; l_theCursor integer default dbms_sql.open_cursor; l_columnValue varchar2(2000); l_status integer; l_colCnt number default 0; l_separator varchar2(10) default ''; l_cnt number default 0; begin execute immediate 'alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss'''; l_output := utl_file.fopen( p_dir, p_filename, 'w' ); dbms_sql.parse(l_theCursor, p_query, dbms_sql.native ); for i in 1 .. 255 loop begin dbms_sql.define_column( l_theCursor, i, l_columnValue, 2000 ); l_colCnt := i; exception when others then if ( sqlcode = -1007 ) then exit; else raise; end if; end; end loop; dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000); l_status := dbms_sql.execute(l_theCursor); loop exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 ); l_separator := ''; for i in 1 .. l_colCnt loop dbms_sql.column_value( l_theCursor, i, l_columnValue ); utl_file.put( l_output, l_separator || l_columnValue); l_separator := p_separator; end loop; utl_file.new_line( l_output ); l_cnt := l_cnt+1; end loop; dbms_sql.close_cursor(l_theCursor); utl_file.fclose( l_output ); return l_cnt; end ; create or replace function dump_txt( p_query in varchar2, p_separator in varchar2 default ',', p_dir in varchar2 , p_filename in varchar2 ) return number is l_output utl_file.file_type; l_theCursor integer default dbms_sql.open_cursor; l_columnValue varchar2(2000); l_status integer; l_colCnt number default 0; l_separator varchar2(10) default ''; l_cnt number default 0; begin execute immediate 'alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss'''; l_output := utl_file.fopen( p_dir, p_filename, 'w' ); dbms_sql.parse(l_theCursor, p_query, dbms_sql.native ); for i in 1 .. 255 loop begin dbms_sql.define_column( l_theCursor, i, l_columnValue, 2000 ); l_colCnt := i; exception when others then if ( sqlcode = -1007 ) then exit; else raise; end if; end; end loop; dbms_sql.define_column( l_theCursor, 1, l_columnValue, 2000); l_status := dbms_sql.execute(l_theCursor); loop exit when ( dbms_sql.fetch_rows(l_theCursor) <= 0 ); l_separator := ''; for i in 1 .. l_colCnt loop dbms_sql.column_value( l_theCursor, i, l_columnValue ); if l_columnValue is not null then l_columnValue:='"'||l_columnValue||'"'; else l_columnValue:=nvl(l_columnValue,'NULL'); end if; utl_file.put( l_output, l_separator || l_columnValue); l_separator := p_separator; end loop; utl_file.new_line( l_output ); l_cnt := l_cnt+1; end loop; dbms_sql.close_cursor(l_theCursor); utl_file.fclose( l_output ); return l_cnt; end ; dump_txt的使用方法 1、建立一个系统文件目录 d:\ex_file 2、建立一个oracle目录,并将读写权限赋予scott用户 conn sys/sys@gx as sysdba CREATE OR REPLACE DIRECTORY extxt AS 'D:\ex_file'; grant read,write on directory extxt to scott; 3、 导出某一个查询的结果 select dump_txt( 'select * from emp',',','EXTXT','emp.txt' ) from dual emp.txt 5555,ggg,CLERK,7900,2008-07-22 00:00:00,0,,10 7369,SMITH,CLERK,7902,1980-12-17 00:00:00,800,,20 7499,ALLEN,SALESMAN,7698,1981-02-20 00:00:00,1600,300,30 7521,WARD,SALESMAN,7698,1981-02-22 00:00:00,1250,500,30 7566,JONES,MANAGER,7839,1981-04-02 00:00:00,2975,,20 7654,MA & RTIN,SALESMAN,7698,1981-09-28 00:00:00,1250,1400,30 7698,BLAKE,MANAGER,7839,1981-05-01 00:00:00,2850,,30 7782,CLARK,MANAGER,7839,1981-06-09 00:00:00,2450,,10 7788,SCOTT,ANALYST,7566,1987-04-19 00:00:00,3000,,20 7839,KING,PRESIDENT,,1981-11-17 00:00:00,5000,,10 7844,TURNER,SALESMAN,7698,1981-09-08 00:00:00,1500,0,30 7900,JAMES,CLERK,7698,1981-12-03 00:00:00,950,,30 7902,FORD,ANALYST,7566,1981-12-03 00:00:00,3000,,20 7934,MILLER,CLERK,7782,1982-01-23 00:00:00,1300,,10 7876,ADAMS,CLERK,7788,1987-04-23 00:00:00,1100,,20 数据导入 select dump_txt( 'select * from all_objects',',','EXTXT','all_object2.txt' ) from dual create table t_dump as select * from all_objects where 1=2 select replace(dbms_metadata.get_ddl('TABLE','T_DUMP'),'"','') from dual CREATE TABLE SCOTT.T_DUMP ( OWNER VARCHAR2(30) NOT NULL ENABLE, OBJECT_NAME VARCHAR2(30) NOT NULL ENABLE, SUBOBJECT_NAME VARCHAR2(30), OBJECT_ID NUMBER NOT NULL ENABLE, DATA_OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(19), CREATED DATE NOT NULL ENABLE, LAST_DDL_TIME DATE NOT NULL ENABLE, TIMESTAMP VARCHAR2(19), STATUS VARCHAR2(7), TEMPORARY VARCHAR2(1), GENERATED VARCHAR2(1), SECONDARY VARCHAR2(1), NAMESPACE NUMBER NOT NULL ENABLE, EDITION_NAME VARCHAR2(30) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE USERS drop table T_ext CREATE TABLE T_ext ( OWNER VARCHAR2(30), OBJECT_NAME VARCHAR2(30), SUBOBJECT_NAME VARCHAR2(30), OBJECT_ID NUMBER, DATA_OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(19), CREATED DATE, LAST_DDL_TIME DATE, TIMESTAMP1 VARCHAR2(19), STATUS VARCHAR2(7), TEMPORARY1 VARCHAR2(1), GENERATED1 VARCHAR2(1), SECONDARY VARCHAR2(1), NAMESPACE NUMBER, EDITION_NAME VARCHAR2(30) ) ORGANIZATION external ( TYPE oracle_loader DEFAULT DIRECTORY EXTXT ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE SKIP 1 BADFILE EXTXT:'emp.bad' LOGFILE EXTXT:'t.log_xt' READSIZE 1048576 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' LDRTRIM REJECT ROWS WITH ALL NULL FIELDS ( OWNER CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', OBJECT_NAME CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', SUBOBJECT_NAME CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', OBJECT_ID CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', DATA_OBJECT_ID CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', OBJECT_TYPE CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', CREATED date mask "yyyy-mm-dd hh24:mi:ss" TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' , LAST_DDL_TIME date mask "yyyy-mm-dd hh24:mi:ss" TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' , TIMESTAMP1 CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', STATUS CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', TEMPORARY1 CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', GENERATED1 CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', SECONDARY CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', NAMESPACE CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"', EDITION_NAME CHAR(255) TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' ) ) location ( EXTXT:'all_object2.txt',EXTXT:'all_object1.txt' ) ) PARALLEL REJECT LIMIT UNLIMITED select * from T_ext 调试方法 CREATE TABLE T_ext_in ( OWNER VARCHAR2(30), OBJECT_NAME VARCHAR2(30), SUBOBJECT_NAME VARCHAR2(30), OBJECT_ID NUMBER, DATA_OBJECT_ID NUMBER, OBJECT_TYPE VARCHAR2(19), CREATED DATE, LAST_DDL_TIME DATE, TIMESTAMP1 VARCHAR2(19), STATUS VARCHAR2(7), TEMPORARY1 VARCHAR2(1), GENERATED1 VARCHAR2(1), SECONDARY VARCHAR2(1), NAMESPACE NUMBER, EDITION_NAME VARCHAR2(30) ) parallel nologging insert /*+append*/ into T_ext_in select /*+parallel*/ * from T_ext --2.5s SQL> conn scott/tiger 已连接。 SQL> @D:\ex_file\insert.SQL 时间好长……. 原因: 1、 绑定变量; 2、 多进程的直接加载; 如果从客户端加载文本数据,则用sql*loader
发表评论
-
更新一个表的字段值等于另一个表的字段值的SQL语句
2012-02-10 09:22 3381将id相同的B表的name更新到A表 表a 字段id ... -
Oracle完全卸载
2012-02-04 11:40 706Oracle完全卸载 系统环境: 1、操作系统:Windo ... -
计算两个日期之间的月份
2011-11-21 15:34 873select round(months_between(TRU ... -
oracle修改排序内存及批量插入数据
2011-08-19 16:22 943显示内存大小:show parameters area_s ... -
集合参数绑定变量的实现
2010-03-11 10:44 1401问题的引出 select ename from em ... -
oracle函数
2010-03-03 15:18 696向前按自然日推n个月的函数 select add_month ... -
Oracle 概念(Oracle 10.2)
2010-02-20 13:26 10891、Oracle介绍 本章提供 ... -
SQL 的解析顺序
2009-12-23 11:44 758SQL code标准的 SQL 的解析顺序为: (1). ... -
Orcale创建临时表
2008-11-05 16:49 1936在Oracle8i或以上版本中 ... -
Oracle学习(-)概念
2008-10-02 13:37 2510一、SQL语句可分为5类: 1. 查询语句 :用于检索数据库 ... -
explain plan,autotrace,tkprof,执行计划和静态统计信息的解读
2008-08-29 09:58 3456explain plan,autotrace,tkprof,执 ... -
表的其他的重要物理参数
2008-08-29 09:56 1009表的其他的重要物理参数 1、MSSM(Manual segm ... -
层次查询
2008-08-29 09:51 1066层次查询 create table emp_hire as ... -
按照一定顺序提取数据
2008-08-29 09:46 1031按照一定顺序提取数据研究 create table xxx ... -
查询key唯一 时间最早的记录列表
2008-08-28 14:41 1493查询key唯一 时间最早的记录列表 select a.* ... -
Oracle的结构体系的抽象(2)
2008-07-23 14:30 865数据库的体系结构---老王家与ORACLE的基本内容的对照 ... -
Oracle的结构体系的抽象(1)
2008-07-23 14:23 988Oracle的结构体系的抽象 一个狂热摄影爱好者—老王的幸福家 ... -
3—如何构建高效的、稳定的、高可用性的oracle应用
2008-07-23 14:14 967发展趋势 oracle成为主流数据库 ... -
序列-sequence 的使用
2008-06-19 17:51 1022创建序列,生成唯一的主键id; create sequenc ... -
com.opensymphony.xwork2.util.LocalizedTextUtil.fi
2008-05-26 13:53 447313:34:14,328 ERROR [[jsp]] Serv ...
相关推荐
介绍了如何将CFX中的计算得到流体数据导入到tecplot中进行显示,通过录制的视频,可以详细指导每个操作的步骤
是SQL 2005数据库认证 课程的上机报告 数据的导入与导出 如 分离附加 用IIIS服务 平面源文件 Excel 文件的导入与导出
SQL Server 2005 DTS导入平面数据源时,总是被截断,无法执行的错误解决方案 1 典型的错误信息如下: 消息 * 错误 0xc02020a1: 数据流任务: 数据转换失败。列“列 2”的数据转换返回状态值 4 和状态文本“文本被截断...
处理TerraSync SSF数据 - 本教程介绍如何将Trimble标准存储格式文件(.ssf)与适当的参考/基站RINEX文件一起导入TBC,并执行连续GNSS数据的后处理以创建轨迹准确定位记录的特征点和线条工作。 使用点云 使用点云 - ...
本程序可自动分析商业有限元软件Abaqus的inp格式模型文件,将网格、材料、位移约束、荷载、不可设计域等信息导入为Matlab变量,作为自编Matlab有限元程序的前处理器。 功能说明: 支持读取平面应力的三角形、...
可以让用户方便的编辑数据,可以剪切,拷贝,粘贴redis数据,可以导入,导出redis数据,可以对redis数据排序。 特点: 1、使用服务器管理,支持服务器密码认证 2、根据喜好管理redis数据 3、管理redis数据,包括...
用户可以导入、导出、编辑和管理各种地质数据类型,以便后续分析和解释。 2. 数据可视化和分析:Aegis具有强大的数据可视化和分析功能,可以将地质数据以图表、剖面、平面图等形式进行可视化展示。用户可以对数据...
Tecplot从散点图生成2D云图的方法
公用数据管理功能包括新建、导入、导出、排序、复制、删除、清空、合并、公式计算等多种管理与计算功能。所有操作都在右键上、方便。 2 数据显示 数据在平面视图上显示和编辑,包括测网、点数据、线数据、场数据、...
命令行脚本,用于将数据从ElasticSearch导入/导出到其他各种存储系统。 特征: 基于Node.js的命令行工具 导出到另一个ElasticSearch实例,压缩的平面文件,MySQL,Mongo DB等。 在目标上重新创建映射和设置 可以...
添加了点导入/导出的PCD格式支持。添加了卫星图像处理支持 添加了导入正交拼合和导入平铺模型命令。 添加了DEM合并支持。在“参考”窗格中添加了对Alpha,Nu,Kappa旋转角度的支持。 添加了从模型生成平铺模型时...
9.2.3 图形的导入与导出 9.3 CorelDRAW 10绘图基础 9.3.1 基本绘图 9.3.2 编辑路径 9.3.3 变换对象 9.3.4 色彩填充 9.3.5 轮廓编辑 9.4 文本处理 9.4.1 用文本工具添加文本 9.4.2 添加段落文本 9.4.3 添加美术字文本...
它支持多种数据格式,包括Excel、CSV等,方便用户导入和导出数据。此外,ResForm软件还提供了丰富的数据处理和分析功能,如数据筛选、排序、计算等,帮助用户更好地处理和解释数据。 在地质勘探和石油工程领域,...
简陋的简单数据管道实用程序带。 Vandelay 安装 npm install vandelay --save 示例-平面文件 import { tap , fetch , transform , parse } from 'vandelay' fetch ( { url : 'http://google.com/example.geojson' ,...
Microsoft® Office Visio® 2003提供的模板、 形状和绘图工具可用于创建有效的业务图表...以导入数据来创建图表,从图表中导出数 据,使用图表存储数据,根据存储的数据生 成报告以及将图表并入Microsoft Office文件。
6.2 使用Automation代码将Access数据导出到Word 6.2.1 Word对象模型 6.2.2 选择.Access数据合并到Word的方法 6.3 小结 第7章 使用Excel工作表 7.1 简单地将Access数据导出到Excel 7.2 Excel...
6.2 使用Automation代码将Access数据导出到Word 6.2.1 Word对象模型 6.2.2 选择.Access数据合并到Word的方法 6.3 小结 第7章 使用Excel工作表 7.1 简单地将Access数据导出到Excel 7.2 Excel...
6.2 使用Automation代码将Access数据导出到Word 6.2.1 Word对象模型 6.2.2 选择.Access数据合并到Word的方法 6.3 小结 第7章 使用Excel工作表 7.1 简单地将Access数据导出到Excel 7.2 Excel...
从POSER软件生成中导出包含能够生成三维男性人台数据点的OBJ文件,使用动态数组技术对数据点进行优化处理,只保留其中的三维坐标值和法向量.以VC++和Op衄GL为平台,导入处理后的OBJ文件,使用三角网格平面来建立三...
6.2 使用Automation代码将Access数据导出到Word 6.2.1 Word对象模型 6.2.2 选择.Access数据合并到Word的方法 6.3 小结 第7章 使用Excel工作表 7.1 简单地将Access数据导出到Excel 7.2 Excel...