Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nhập nội dung lớn vào cơ sở dữ liệu oracle

Cách đơn giản nhất là sử dụng biến ràng buộc. Đây là ví dụ cơ bản:

CREATE TABLE clob_table (val CLOB);

void Main()
{
    using (var connection = new OracleConnection("DATA SOURCE=hq_pdb_tcp;PASSWORD=oracle;USER ID=HUSQVIK"))
    {
        using (var transaction = new TransactionScope())
        {
            connection.Open();

            using (var command = connection.CreateCommand())
            {
                command.CommandText = "INSERT INTO clob_table (val) VALUES (EMPTY_CLOB()) RETURNING val INTO :clob";
                var parameter = command.Parameters.Add("clob", OracleDbType.Clob, ParameterDirection.Output);

                command.ExecuteNonQuery();

                var clob = (OracleClob)parameter.Value;

                ChunkFile(@"LargeTextFile.txt", 8060, (b, l) => clob.Append(b, 0, l));
            }

            transaction.Complete();
        }
    }
}

private void ChunkFile(string fileName, int chunkSize, Action<char[], int> chunkAction)
{
    using (var stream = File.OpenText(fileName))
    {
        do
        {
            var buffer = new char[chunkSize];
            var length = stream.Read(buffer, 0, chunkSize);
            if (length == 0)
                return;

            chunkAction(buffer, length);
        }
        while (true);
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chuyển đổi thập phân sang thập lục phân bằng TO_CHAR () trong Oracle

  2. kết nối oci_connect không thành công

  3. vấn đề với Add_month trong oracle, tôi cần tạo chu kỳ thanh toán

  4. cách kiểm tra tất cả các ràng buộc trên bảng trong oracle

  5. Hàm DECOMPOSE () trong Oracle