精华内容
下载资源
问答
  • oracle 导出查询结果至CSV

    千次阅读 2016-07-06 12:29:49
    使用oracle存储过程实现查询结果导出至csv文件中。

    使用oracle存储过程实现查询结果导出至csv文件中。调用过程时,需要在oracle服务器上定义目录(已经存在的目录)。


    create or replace PROCEDURE  PX_SYS_IMP_CSV(V_SQL IN VARCHAR2,V_DIR IN VARCHAR2,V_FILENAME IN VARCHAR2)

    IS
      V_FILE UTL_FILE.FILE_TYPE;
      V_CURSOR INTEGER DEFAULT DBMS_SQL.OPEN_CURSOR;
      V_COL_VALUE VARCHAR2(4000);

      V_COL_CNT NUMBER := 0;
      V_SEPARATOR CHAR(1);
      V_TAB_DESC DBMS_SQL.DESC_TAB;
     
      V_STATUS INTEGER;
      V_MAX_LINESIZE NUMBER := 32000;
    BEGIN
      --OPEN FILE
      V_FILE := UTL_FILE.FOPEN(V_DIR, V_FILENAME, 'W', V_MAX_LINESIZE);
      EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_FORMAT=''YYYY-MM-DDHH24:MI:SS''';
     
      --OPEN CURSOR
      DBMS_SQL.PARSE( V_CURSOR, V_SQL, DBMS_SQL.NATIVE );
      DBMS_SQL.DESCRIBE_COLUMNS( V_CURSOR, V_COL_CNT, V_TAB_DESC );
     
      --DUMP TABLE COLUMN NAME
      FOR I IN 1 .. V_COL_CNT LOOP
        UTL_FILE.PUT( V_FILE, V_SEPARATOR || '"' || V_TAB_DESC(I).COL_NAME ||'"' );
        DBMS_SQL.DEFINE_COLUMN( V_CURSOR, I, V_COL_VALUE, 4000 );
        V_SEPARATOR := ',';
      END LOOP;
      UTL_FILE.NEW_LINE( V_FILE );
     
      --EXECUTE THE QUERY STATEMENT
      V_STATUS := DBMS_SQL.EXECUTE(V_CURSOR);
     
      --DUMP TABLE COLUMN VALUE
      WHILE ( DBMS_SQL.FETCH_ROWS(V_CURSOR) > 0 ) LOOP
        V_SEPARATOR := '';
        FOR I IN 1 .. V_COL_CNT LOOP
          DBMS_SQL.COLUMN_VALUE( V_CURSOR, I, V_COL_VALUE );
          UTL_FILE.PUT( V_FILE, V_SEPARATOR || '"' ||
          TRIM(BOTH ' ' FROM REPLACE(V_COL_VALUE,'"','""')) ||'"');
          V_SEPARATOR := ',';
        END LOOP;
        UTL_FILE.NEW_LINE( V_FILE );
      END LOOP;
     
      --CLOSE CURSOR
      DBMS_SQL.CLOSE_CURSOR(V_CURSOR);
     
      --CLOSE FILE
      UTL_FILE.FCLOSE( V_FILE );

    END PX_SYS_IMP_CSV ;
    展开全文
  • Oracle SqlPlus导出查询结果在sqlplus下导出查询的结果保存到本地sql文件中,可以采用如下方式:1、连接数据库:  sqlplus xmq/xmqpwd@192.168.1.57:1521/db 2、导出sql脚本:  set feedback off --回显本次sql...

     

    Oracle SqlPlus导出查询结果

    在sqlplus下导出查询的结果保存到本地sql文件中,可以采用如下方式:

    1、连接数据库   sqlplus xmq/xmqpwd@192.168.1.57:1521/db 2、导出sql脚本:   set feedback off  --回显本次sql命令处理的记录条数,缺省为on   set pagesize 0   --输出每页行数,缺省为24,设定为0表示不分页   set long 90000   spool c:/schema.sql  --输出文件路径,可以是全路径或是相对路径   select col1 from table1;--执行查询   spool off

    相关属性
    set echo off --不显示执行的sql语句
    set feedback off --不显示XX rows selected的行
    set heading off --不显示表头
    set termout off --不显示脚本运行结果
    set trimspool on --去掉脚本输出行尾部的空格
    set pagesize 0 --设置pagesize为零,不让oracle进行分页处理
    set linesize 10000 --设置每行最大列数
    set colsep '    ' --设置列之间的分隔符

     

     

     

     

    转载于:https://www.cnblogs.com/xmqa/p/6413598.html

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
    sqlplus test/test@testdb<< EOF
    
    SPOOL /opt/XXXXX/XXXXXXX.txt
    
    SET LINESIZE 100
    
    SET PAGESIZE 50
    
    select *
    
    from test;
    
    SPOOL OFF
    
    exit;
    
    EOF

     

    转载于:https://my.oschina.net/u/2308739/blog/818324

    展开全文
  • oracle查询结果导出execl,独立完整,免客户客户端和office,c#开发
  • 环境:Linux +python2.7+oracle11g1、提前安装xlwt(excel写入操作模块),cx_Oracleoracle操作模块)cx_Oracle的安装步骤详见链接:https://segmentfault.com/a/11900000098785472、脚本如下:#!/usr/bin/python# -...

    环境:Linux +python2.7+oracle11g

    1、提前安装xlwt(excel写入操作模块),cx_Oracle(oracle操作模块)

    cx_Oracle的安装步骤详见链接:https://segmentfault.com/a/1190000009878547

    2、脚本如下:

    #!/usr/bin/python

    # -*- coding: utf-8 -*-

    import sys

    import os

    reload(sys)

    sys.setdefaultencoding('utf8')

    os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

    import cx_Oracle

    import xlwt

    import datetime

    import time

    import smtplib

    from email.mime.multipart import MIMEMultipart

    from email.mime.text import MIMEText

    from email.mime.application import MIMEApplication

    import os.path

    filename = 'report_'+time.strftime("%Y-%m-%d")+'.xls'

    out_path = '/data/shell/report_'+time.strftime("%Y-%m-%d")+'.xls'

    print(out_path)

    sheet01 = 'report'+time.strftime("%Y-%m-%d")

    #获取发布时间与系统时间为同一个月的数据

    sql01="select * from xxxxx where to_char(publish_time,'yyyy-mm-dd')=to_char(sysdate, 'yyyy-mm-dd'); "

    workbook = xlwt.Workbook(encoding = 'utf-8') # workbook是sheet赖以生存的载体。

    def main(sql,sheet,sheet_name):

    conn = cx_Oracle.connect("user/passwd@ip/sid")

    cursor =conn.cursor()

    result = cursor.execute(sql)

    #搜取所有结果

    results = cursor.fetchall()

    # 获取MYSQL里面的数据字段名称

    fields = cursor.description

    sheet = workbook.add_sheet(sheet_name,cell_overwrite_ok=True)

    # 写上字段信息

    for field in range(0,len(fields)):

    sheet.write(0,field,fields[field][0])

    # 获取并写入数据段信息

    row = 1

    col = 0

    for row in range(1,len(results)+1):

    for col in range(0,len(fields)):

    sheet.write(row,col,u'%s'%results[row-1][col])

    workbook.save(out_path)

    _user = "xxx@qq.com"

    _pwd = "passwd"

    areceiver = "xxx@qq.com" #收件人员

    acc = "xxx@qq.com" #抄送人员

    #如名字所示Multipart就是分多个部分

    msg = MIMEMultipart()

    msg["Subject"] =u'【数据统计_' + time.strftime("%Y-%m-%d") + u'】'

    msg["From"] = _user

    msg["To"] = areceiver

    msg["Cc"] = acc

    def send_email():

    #---这是文字部分---

    content = '''Deal all,\n附件是数'''

    part = MIMEText(content,'plain','utf-8')

    msg.attach(part)

    #---这是附件部分---

    #xls类型附件

    file_name = '/data/shell/' + filename

    part = MIMEText(open(file_name,'rb').read(), 'base64', 'gb2312')

    part["Content-Type"] = 'application/octet-stream'

    basename = os.path.basename(file_name)

    part["Content-Disposition"] = 'attachment; filename=%s' % basename.encode('gb2312')

    msg.attach(part)

    s = smtplib.SMTP("smtp.qq.com", timeout=30)#连接smtp邮件服务器,端口默认是25

    s.login(_user, _pwd)#登陆服务器

    s.sendmail(_user, areceiver.split(',') + acc.split(','), msg.as_string())#发送邮件

    print("Email send successfully")

    s.close()

    if __name__ == '__main__':

    main(sql01,sheet01,sheet01)

    send_email()

    Oracle获取当月或上个月、下个月

    add_months()函数 参数 负数 代表 往前 正数 代表 往后。

    --当月

    select to_char(sysdate,'yyyymm') from dual;

    --上一个月

    select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;

    --下一个月

    select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;

    相关链接:https://blog.csdn.net/u013519551/article/details/46632537

    https://blog.csdn.net/mindmb/article/details/7898528

    https://blog.csdn.net/my2010sam/article/details/21005941

    展开全文
  • 任务需求是查询几个相关数据表,然后把结果输出为csv文件。1.先写一个sql文件,如果是在windows环境下运行要用ansi内码存盘。文件框架如下:SET feedback offSET pagesize 50000SET linesize 20000SET verify offSET...
  • Oracle 查询结果导出为csv格式

    千次阅读 2015-07-15 14:59:14
    oracle 的plussql语句导出查询结果,导出文件格式为csv格式  预备知识: 1. Oracle的存储过程知识 2. Oracle 的Utl_file,directory知识 3. 隐含知识点:plussql中表名用变量代替如何实现 假设...
  • 环境:Linux +python2.7+oracle11g1、提前安装xlwt(excel写入操作模块),cx_Oracle(oracle操作模块)cx_Oracle的安装步骤详见链接:https://segmentfault.com/a/11900000098785472、脚本如下:#!/usr/bin/python# -*-...
  • 试过直接将导出的文件设为xls,打开xls文件,发现里面存在一些html符号,非理想中的excel表格形式的数据,导成excel还需经过手工处理,如下: 新建1个excel文件,打开生成的html,将中间的表格copy至excel中,即可...
  • Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据 库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的...
  • 方法一: (此方法为导出某张表中所有数据的insert语句) ...1.输入SQL语句,查询指定结果: 2.挑选自己所需要的数据(可按住Ctrl再选中自己需要的某些数据) 3.右键 -> 导出结果 -> SQL文件 4.选择路径 -&
  • oracle中通过sql语句查询数据结果,在使用导出功能的时候,报错——ORA-00911:无效的字符。 解决办法: 去掉sql语句的分号,然后重新执行sql,结果重新生成之后,再次导出即可。 如果有...
  • 查询特定表(含条件),并把其结果集(一千多万的数据)进行导出。 2.使用技术就是就是spool,代码如下: spool /user/result.txt select phone from t_mt where state_true='0'; spool off 其中/user/result.txt ...
  • 试过直接将导出的文件设为xls,打开xls文件,发现里面存在一些html符号,非理想中的excel表格形式的数据,导成excel还需经过手工处理,如下: 新建1个excel文件,打开生成的html,将中间的表格copy至excel中,...
  • 一、oracle导出excel方法一:最简单的方法---用工具plsql dev执行File =>new Report Window 。在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。在右侧工具栏,可以选择按钮另存为html、copy ...
  • 在ITPUB上看到有人提出这个问题,能否利用数据泵导出一个查询结果。事实上数据泵还真的具有这个功能。这一篇介绍数据泵的QUERY功能。建立一个简单的测试环境:SQL> CREATE TABLE T1 2 (ID NUMBER, NAME VARCHAR2...
  • 查询结果导出到Excel; 4. 计算整个执行过程的时间; 下面按照步骤逐步,具体每步的作用注释都有标明 1、导入相关模块 importopenpyxl # 操作Excel表格 fromopenpyxlimportWorkbook importcx_Oracle # ...
  • 上一篇介绍的方法限制条件太严格,这篇给出的方法基本上没有限制条件,可以满足任何查询结果导出: SQL> CREATE TABLE T_RESULT 2 ( 3 ID, 4 NAME1, 5 NAME2 6 ) 7 ORGANIZATION EXTERNAL 8 ( 9 TYPE ...
  • Oracle (MEMO:利用spool缓冲池技术) 具体步骤如下: ...2、在命令中输入相应的SQL查询命令 select * from customer; ... 3、在命令行中输入缓冲结果命令 spool off; 系统将缓冲池的结果输出到“output.
  • 您可能感兴趣的文章:MySQL中在查询结果集中得到记录行号的方法PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解sql 查询记录数结果集某个区间内记录JavaWeb dbutils执行sql命令并遍历结
  • Oracle表中查询结果字段保留2位小数 select to_char(0, 'fm9999990.00') from dual; 但是这种方式格式化的是字符串,不是数字 select cast(123.1 as number(18,2)) from dual; 其中number(18,2)是需要保留的整数位...
  • oracle导出excel

    2012-04-27 14:49:00
    一、oracle导出excel 方法一:最简单的方法---用工具plsql dev 执行File =>new Report Window 。在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。在右侧工具栏,可以选择按钮另存为html...
  • 打开一个命令窗口,把以下内容复制过去,oracle会把结果全部保存到f:\temp\test.txt这个文件里面去。 set echo off --设置信息 set feedback off set heading off Spool f:\temp\test.txt --开始spool命令 ...
  • 1、在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件路径和文件名 spool d:\output.txt 2、在命令中输入相应的SQL查询命令 select * from customer; ... 3、在命令行中输入缓冲结果命令 ...
  • oracle sqlplus命令行导出sql结果到文件

    千次阅读 2020-03-28 07:46:47
    导出sql结果 使用spool 即可。 spool ttt.txt; # select 1 from dual; # 查询语句 spool off; # 关闭缓冲,并导出内容到文件 小提示: spool ttt.txt; 文件不存在会新建,存在的话,直接清空。 执行sql并不会输出...
  • oracle导出excel 一、oracle导出excel ...在sql标签中写入需要的sql,点击执行或按快捷键F8,会先吃出查询结果。在右侧工具栏,可以选择按钮另存为html、copy as html、exportresults,其中export results

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 344
精华内容 137
关键字:

oracle导出查询结果