c#处理oracle clob(一)——insert

2024-03-16 21:48
文章标签 oracle 处理 insert clob

本文主要是介绍c#处理oracle clob(一)——insert,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

创建表:

create table TB_TEST
(
  ID         NUMBER not null,
  COLUMNID   NUMBER not null,
  TITLE      VARCHAR2(100) not null,
  CONTENT    CLOB not null,
  CREATETIME DATE default SYSDATE not null
)

存储过程:

create or replace procedure PROC_TEST_ADD
(
    i_title                  in varchar2,
    i_columnId               in number,
    i_content                in clob,
   
    o_id                     out number
)
is
    v_content                clob;
    v_buffer                 varchar2(512);
    v_length                 number := 0;
    v_offset                 number := 1;
    v_amount                 number := 256;
begin
    select seq_test.nextval into o_id from dual;
    insert into tb_test
    (
        id,
        columnid,
        title,
        content,
        createtime
    )
    values
    (
        o_id,
        i_columnid,
        i_title,
        empty_clob(),
        sysdate
    );
    dbms_output.put_line(v_length);
    v_length := dbms_lob.getlength(i_content);
    dbms_output.put_line(v_length);
    select content into v_content from tb_test where id = o_id for update;
    dbms_lob.open(v_content,dbms_lob.lob_readwrite);
    while v_offset <= v_length
    loop
        dbms_lob.read(i_content,v_amount,v_offset,v_buffer);
        dbms_lob.writeappend(v_content,v_amount,v_buffer);
        v_offset := v_offset + v_amount;
    end loop;
    dbms_lob.close(v_content);
    commit;
end PROC_TEST_ADD;

Insert函数:

public void Insert()
    {       
        string sConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["wuyou"].ConnectionString;
        OracleConnection connection = null;
        OracleCommand command = null;
        try
        {
            connection = new OracleConnection(sConnectionString);
            connection.Open();

            string str = "跨世纪发的司法考试方";
            while (str.Length < 5000)
            {
                str += str;
            }

            command = new OracleCommand("PROC_TEST_ADD",connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.Add("i_title", OracleType.VarChar);
            command.Parameters["i_title"].Direction = ParameterDirection.Input;
            command.Parameters["i_title"].Value = "";
            command.Parameters.Add("i_columnid", OracleType.Number);
            command.Parameters["i_columnid"].Direction = ParameterDirection.Input;
            command.Parameters["i_columnid"].Value = 1;
            command.Parameters.Add("i_content", OracleType.Clob);
            command.Parameters["i_content"].Direction = ParameterDirection.Input;
            command.Parameters["i_content"].Value = str;
            command.Parameters.Add("o_id", OracleType.Number);
            command.Parameters["o_id"].Direction = ParameterDirection.Output;

            command.ExecuteNonQuery();
        }
        finally
        {
            if (command != null)
            {
                command.Dispose();
            }
            if (connection != null)
            {
                connection.Dispose();
                connection.Close();
            }
        }
    }

这篇关于c#处理oracle clob(一)——insert的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/816824

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推