`
zsmud
  • 浏览: 73406 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

生成数据库SQL语句

阅读更多
sql 代码
  1. --前提是utl_file_dir不能为空,必需修改initsid.ora文件然后重启数据库   
  2. CREATE OR REPLACE PROCEDURE genins_file(   
  3. p_table  IN varchar2,   
  4. p_output_folder IN VARCHAR2,   
  5. p_output_file   INVARCHAR2)   
  6. IS  
  7.   --   
  8.  l_column_list   VARCHAR2(32767);   
  9.  l_value_list    VARCHAR2(32767);   
  10.  l_query         VARCHAR2(32767);   
  11.  l_cursor        NUMBER;   
  12.   ignore  NUMBER;   
  13.  l_insertline1   varchar2(32767);   
  14.  l_insertline2   varchar2(32767);    
  15.  cmn_file_handle      UTL_FILE.file_type;   
  16.   --   
  17.   FUNCTION get_cols(p_table VARCHAR2)   
  18.   RETURN VARCHAR2   
  19.   IS  
  20.     l_colsVARCHAR2(32767);   
  21.     CURSORl_col_cur(c_table VARCHAR2) IS  
  22.            SELECT column_name   
  23.            FROM   user_tab_columns   
  24.            WHERE  table_name = upper(c_table)   
  25.            ORDER BY column_id;   
  26.   BEGIN  
  27.     l_cols :=null;   
  28.     FOR rec INl_col_cur(p_table)   
  29.     LOOP   
  30.      l_cols := l_cols || rec.column_name || ',';   
  31.     ENDLOOP;   
  32.     RETURNsubstr(l_cols,1,length(l_cols)-1);   
  33.   END;   
  34.   --   
  35.   FUNCTION get_query(p_table IN VARCHAR2)   
  36.   RETURN VARCHAR2   
  37.   IS  
  38.     l_queryVARCHAR2(32767);   
  39.      CURSOR l_query_cur(c_table VARCHAR2) IS  
  40.        SELECT 'decode('||column_name||',null,''null'','||   
  41.               decode(data_type,'VARCHAR2','''''''''||'||column_name||'||'''''''''   
  42.               ,'DATE','''''''''||to_char('||column_name||',''YYYY-MM-DDHH24:MI:SS'')||'''''''''   
  43.               ,column_name   
  44.               ) || ')' column_query   
  45.          FROM user_tab_columns   
  46.         WHERE table_name = upper(c_table)   
  47.        ORDER BY column_id;   
  48.   BEGIN  
  49.     l_query :='SELECT ';   
  50.     FOR rec INl_query_cur(p_table)   
  51.     LOOP   
  52.      l_query := l_query || rec.column_query || '||'',''||';   
  53.     ENDLOOP;   
  54.     l_query :=substr(l_query,1,length(l_query)-7);   
  55.     RETURNl_query || ' FROM ' || p_table;   
  56.   END;   
  57.   --   
  58. BEGIN  
  59.   l_column_list  :=get_cols(p_table);   
  60.  l_query       := get_query(p_table);   
  61.   l_cursor := dbms_sql.open_cursor;   
  62.   DBMS_SQL.PARSE(l_cursor, l_query,DBMS_SQL.native);   
  63.   DBMS_SQL.DEFINE_COLUMN(l_cursor, 1,l_value_list, 32767);   
  64.   ignore := DBMS_SQL.EXECUTE(l_cursor);   
  65.   --   
  66.   IF NOT UTL_FILE.IS_OPEN(cmn_file_handle)THEN  
  67.        cmn_file_handle := UTL_FILE.FOPEN (p_output_folder, p_output_file,'a',32767);   
  68.   END IF;   
  69.     
  70.   LOOP   
  71.     IFDBMS_SQL.FETCH_ROWS(l_cursor)>0 THEN  
  72.      DBMS_SQL.COLUMN_VALUE(l_cursor, 1, l_value_list);   
  73.      l_insertline1:='INSERT INTO '||p_table||'('||l_column_list||')';   
  74.      l_insertline2:=' VALUES ('||l_value_list||');';   
  75.      UTL_FILE.put_line (cmn_file_handle, l_insertline1);   
  76.      UTL_FILE.put_line (cmn_file_handle, l_insertline2);   
  77.     ELSE  
  78.      EXIT;   
  79.     ENDIF;   
  80.   END LOOP;   
  81.   IF NOT UTL_FILE.IS_OPEN(cmn_file_handle)THEN  
  82.     UTL_FILE.FCLOSE (cmn_file_handle);   
  83.   ENDIF;     
  84. END;   
  85. /   
分享到:
评论

相关推荐

    C#根据DataTable的数据变更动态生成SQL语句保存到数据库

    因积分变更以及有反应说有方法不完整,已重新上传完整版,请去本人新上传的链接下载。 根据DataTable中数据行记录改变的状态,动态生成SQL语句, ...有了这一个函数,从此彻底告别手动写SQL语句更新到数据库的时代

    将整个数据库生成生成sql语句

    在SQL Server中,可以使用内置的`sqlcmd`工具或SSMS(SQL Server Management Studio)来生成数据库的SQL脚本。例如,SSMS允许用户选择要导出的数据库对象,包括表、索引、约束、视图、存储过程等,并且可以选择是否...

    sql语句万能生成器,sql语句,sql语句生成

    总之,SQL语句生成器是数据库开发者的得力助手,它能简化SQL编写,提高代码质量,降低调试难度,让开发者更专注于业务逻辑的实现。随着技术的发展,这类工具的功能将会越来越强大,更好地服务于数据库管理和开发工作...

    excel表生成数据库SQL插入语句工具

    "Excel表生成数据库SQL插入语句工具"正是为了解决这个问题而设计的。这款工具能够自动化地将Excel表格中的数据转换成符合特定数据库格式的SQL插入语句,极大地提高了工作效率。 首先,我们需要理解SQL插入语句的...

    对比两个mysql数据库显示差异并生成更新SQL语句,执行到指定数据库

    【作品名称】:对比两个mysql数据库显示差异并生成更新SQL语句,执行到指定数据库 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 ...

    mybatis根据数据库表自动生成SQL、实体类、mapper文件工具

    在SSM项目中,MyBatis的Mapper文件是关键组成部分,它定义了SQL语句和Java方法之间的映射关系。实体类则对应数据库中的表,用于存储和传递数据。而SQL语句则负责数据的查询、插入、更新和删除等操作。这个工具能够...

    查看LINQ生成SQL语句的几种方法

    LINQ(Language Integrated Query,语言集成查询)是.NET...总之,掌握查看LINQ生成SQL语句的技巧对理解和优化数据库操作至关重要。通过这些方法,开发者可以更好地调试查询,找出性能瓶颈,并提升应用程序的整体效率。

    PyCharm生成数据库表结构语句脚本以及数据库数据insert语句的方法.docx

    在生成数据库数据 insert 语句时,PyCharm 也提供了多种选项可以调整,例如,可以选择生成的 SQL 语句的格式、是否包含注释、是否生成插入语句的头部等等。这使得开发者可以根据需要自定义生成的 SQL 语句脚本。 ...

    Oracle数据库sql语句 跟踪器

    Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...

    自动生成SQL语句_C#_sql_

    总结,自动生成SQL语句在C#开发中是一项实用的技术,可以帮助我们简化数据库操作,提高代码的可读性和维护性。无论是使用ORM框架如Entity Framework,轻量级库如Dapper,还是手工构造或利用辅助库,都有其适用的场景...

    C#封装MySql数据库操作,反射动态生成SQL语句

    C#封装MySql数据库操作,反射动态生成SQL语句。看程序前,最好请先看看里面的“数据库说明”文档,不然可能会一头雾水。 这是我第一次写数据库的程序,我知道有很多地方写得不好,希望能得到大家的指点。我的联系...

    根据MyBatis或iBatis的SQLMapper文件反向生成数据库表

    根据MyBatis或iBatis的SQLMapper文件解析生成数据库表,通常是指通过解析MyBatis或iBatis的SQLMapper文件中的SQL语句,然后根据这些SQL语句来生成对应的数据库表结构。这样的需求可能源于需要将已有的SQLMapper文件...

    Excel根据表格,批量生成sqlserver语句 ,生成建表语句,自行到数据库中执行

    Excel文件中的"Excel根据表格,生成sql语句 .xlsm"很可能就是一个包含宏的Excel工作簿,用户可以打开这个文件,按照指示填写表格,然后运行宏来生成SQL Server的建表语句。 总结来说,这个方法是利用Excel的宏功能...

    SQLtrack 数据库SQL语句监控解析,支持SQL语句追踪 解压直接运行

    SQLtrack是一款专为数据库SQL语句监控和解析设计的工具,它可以帮助数据库管理员或开发人员实时追踪和分析SQL语句的执行情况,从而优化数据库性能、排查问题或确保数据操作的正确性。这款软件的特点是其易用性,用户...

    Excel自动生成sql创建表语句

    支持sqlserver与oracle自动生成sql创建表语句,一键自动生成,非常强大。

    数据库SQL语句生成工具的设计.pdf

    为了提高开发效率和减少手动编写SQL语句可能导致的错误,数据库SQL语句生成工具应运而生。这种工具的设计旨在简化SQL语句的构建过程,提供更高效、准确和灵活的数据库操作体验。 首先,SQL语句生成工具的核心功能是...

    SQL 数据库生成创建表语句

    输入对应的数据库,执行命令,生成创建整个数据库表的创建语句。全部表,注意,是全部表,整个数据库的全部表。

    SQL SERVER 数据自动生成SQL语句

    总之,SQL Server的数据自动生成SQL语句功能是数据库管理和迁移的利器,它极大地提高了工作效率,减少了手动操作可能出现的错误。正确理解和使用这类工具,能让我们在面对大量数据迁移任务时更加得心应手。

    从SQLServer数据库导出SQL语句的程序

    在描述中提到的“从SQL Server数据库导出SQL语句”的程序,通常是指一种能够生成数据库结构和数据的SQL脚本的工具。这种工具可以帮助用户快速获取数据库的完整或部分定义,包括表、视图、存储过程、触发器、索引等,...

    BuildSQL.exe 各种类型的数据库sql语句生成器

    《BuildSQL.exe:数据库SQL语句生成器的全方位解析》 在信息技术领域,数据库管理和查询是不可或缺的一部分。SQL(Structured Query Language)作为数据库查询和管理的标准语言,其使用广泛且重要。然而,编写复杂...

Global site tag (gtag.js) - Google Analytics