您的位置:首页 > 其它

(原) ODP.NET 演示以输出参数的形式获取Clob对象

2007-12-26 14:55 651 查看
using System;

using System.Data;

using System.Text;

using Oracle.DataAccess.Client;

using Oracle.DataAccess.Types;

namespace Sample22

{

/// <summary>

/// 演示以输出参数的形式获取Clob对象

/// </summary>

class Program

{

static void Main(string[] args)

{

// Connect

string constr = "User Id=scott;Password=tiger;Data Source=bjoracle";

OracleConnection conn = Connect(constr);

// Setup

Setup(conn);

// Set the command

OracleCommand cmd = new OracleCommand("begin select story into :1 from multimedia_tab where thekey=1;end;");

cmd.Connection = conn;

cmd.CommandType = CommandType.Text;

// Bind a parameter

OracleParameter param = cmd.Parameters.Add("clobdata", OracleDbType.Clob);

param.Direction = ParameterDirection.Output;

// Execute command

try

{

cmd.ExecuteNonQuery();

// Obtain LOB data as a .NET Type.

string lob_data = (string)((OracleClob)(cmd.Parameters[0].Value)).Value;

// Print out the text

Console.WriteLine("Data is: " + lob_data);

}

catch (Exception ex)

{

Console.WriteLine(ex.Message);

}

finally

{

// Dispose OracleCommand object

cmd.Dispose();

// Close and Dispose OracleConnection object

conn.Close();

conn.Dispose();

}

// Waiting

Console.ReadLine();

}

// Open a new Connection

public static OracleConnection Connect(string connectStr)

{

OracleConnection conn = new OracleConnection(connectStr);

try

{

conn.Open();

}

catch (Exception ex)

{

Console.WriteLine("Error: {0}", ex.Message);

}

return conn;

}

// 初始化并设置测试数据

public static void Setup(OracleConnection conn)

{

StringBuilder blr;

OracleCommand cmd = new OracleCommand("", conn);

blr = new StringBuilder();

blr.Append("DROP TABLE multimedia_tab");

cmd.CommandText = blr.ToString();

try

{

cmd.ExecuteNonQuery();

}

catch (Exception ex)

{

Console.WriteLine("Warning: {0}", ex.Message);

}

blr = new StringBuilder();

blr.Append("CREATE TABLE multimedia_tab(thekey NUMBER(4) PRIMARY KEY,");

blr.Append("story CLOB, sound BLOB)");

cmd.CommandText = blr.ToString();

try

{

cmd.ExecuteNonQuery();

}

catch (Exception ex)

{

Console.WriteLine("Error: {0}", ex.Message);

}

blr = new StringBuilder();

blr.Append("INSERT INTO multimedia_tab values(");

blr.Append("1,");

blr.Append("'This is a long story. Once upon a time.',");

blr.Append("'897855645645456411321231231231287798778978')");

cmd.CommandText = blr.ToString();

try

{

cmd.ExecuteNonQuery();

}

catch (Exception ex)

{

Console.WriteLine("Error: {0}", ex.Message);

}

}

}

}

引用:ODP.NET example
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: