OracleBFile Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um objeto OracleBFile gerenciado projetado para trabalhar com o tipo de dados BFILE
do Oracle. Essa classe não pode ser herdada.
public ref class OracleBFile sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleBFile : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleBFile = class
inherit Stream
interface ICloneable
interface IDisposable
interface INullable
type OracleBFile = class
inherit Stream
interface ICloneable
interface INullable
interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
- Herança
- Implementações
Comentários
O tipo de dados Oracle BFILE
é um tipo de dados Oracle LOB
que contém uma referência a dados binários com um tamanho máximo de 4 gigabytes. Um Oracle BFILE
difere de outros tipos de dados Oracle LOB
em que seus dados são armazenados em um arquivo físico no sistema operacional em vez de no servidor. Observe que o BFILE
tipo de dados fornece acesso somente leitura aos dados. Portanto, não há suporte para métodos orientados para gravação herdados da Stream classe .
Outras características de um BFILE
tipo de dados que o distinguem de um LOB
tipo de dados são:
Contém dados não estruturados.
Dá suporte a agrupamento do lado do servidor.
Usa semântica de cópia de referência. Por exemplo, se você executar uma operação de cópia em um
BFILE
, somente oBFILE
localizador (que é uma referência ao arquivo) será copiado. Os dados no arquivo não são copiados.
O BFILE
tipo de dados deve ser usado para referenciar LOB
s que são grandes em tamanho e, portanto, não são práticos de armazenar no banco de dados. Há sobrecarga de cliente, servidor e comunicação para usar um BFILE
tipo de dados em comparação com o LOB
tipo de dados. É mais eficiente acessar um BFILE
se você precisar apenas obter uma pequena quantidade de dados. É mais eficiente acessar os s residentes LOB
do banco de dados se você precisar obter todo o objeto.
Cada objeto não NULL OracleBFile é associado a duas entidades que definem o local do arquivo físico subjacente:
Um objeto DIRECTORY da Oracle, que é um alias de banco de dados para um diretório no sistema de arquivos, e
O nome de arquivo do arquivo físico subjacente, que está localizado no diretório associado ao objeto DIRECTORY.
Depois que um BFILE
é criado, você pode recuperar seu localizador na forma de um OracleBFile objeto usando os ExecuteReader métodos ou ExecuteScalar .
Para obter um OracleBFile objeto , chame o GetOracleBFile método .
O arquivo físico ao qual um OracleBFile objeto está associado não precisa existir até que você tente acessá-lo. Um aplicativo pode associar um OracleBFile a um arquivo inexistente, criar o arquivo físico no local esperado e chamar Read.
Qualquer tentativa de acessar um fechado OracleBFile usando os Read métodos ou Seek reabre um OracleBFile fluxo automaticamente.
O exemplo de C# a seguir demonstra como você pode criar um em uma BFILE
tabela Oracle e recuperá-lo na forma de um OracleBFile objeto . O exemplo demonstra o uso do OracleDataReader objeto e dos OracleBFileSeek métodos e Read .
private void GetOracleBFile(string connectionString)
{
//Create and open the connection.
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
//Create and execute the commands.
OracleCommand command = connection.CreateCommand();
command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
command.ExecuteNonQuery();
command.CommandText = "SELECT * FROM TestTable";
//Read the BFile data.
byte[] buffer = new byte[100];
OracleDataReader dataReader = command.ExecuteReader();
using (dataReader)
{
if (dataReader.Read())
{
OracleBFile BFile = dataReader.GetOracleBFile(1);
using (BFile)
{
BFile.Seek(0, SeekOrigin.Begin);
BFile.Read(buffer, 0, 100);
}
}
}
}
return;
}
Para obter mais informações sobre como criar e usar um Oracle BFILE
, consulte o tópico apropriado em sua documentação do Oracle.
Observação
Os BeginWrite
métodos , EndWrite
e WriteByte
, que são herdados da System.IO.Stream
classe , não têm suporte porque o BFILE
tipo de dados é somente leitura.
Campos
Null |
Representa um objeto OracleBFile nulo que não está associado a um arquivo físico. |
Propriedades
CanRead |
Obtém um valor que indica se o fluxo |
CanSeek |
Obtém um valor que indica se as operações de busca progressiva ou regressiva podem ser executadas. |
CanTimeout |
Obtém um valor que determina se o fluxo atual pode atingir o tempo limite. (Herdado de Stream) |
CanWrite |
Obtém um valor que indica se o objeto dá suporte à gravação. |
Connection |
Obtém o OracleConnection usado por essa instância do OracleBFile. |
DirectoryName |
Obtém o nome do objeto DIRECTORY, com o qual um OracleBFile objeto está associado. |
FileExists |
Obtém um valor que indica se um arquivo físico que contém dados |
FileName |
Obtém o nome do |
IsNull |
Obtém um valor que indica se o OracleBFile é um fluxo Null. |
Length |
Obtém um valor que retorna o comprimento em bytes do arquivo físico com o qual o objeto OracleBFile está associado. |
Position |
Obtém a posição de leitura atual no fluxo OracleBFile. |
ReadTimeout |
Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará realizar a leitura antes do tempo limite. (Herdado de Stream) |
Value |
Obtém um Array do tipo Byte que contém os dados OracleBFile. |
WriteTimeout |
Obtém ou define um valor, em milissegundos, que determina por quanto tempo o fluxo tentará realizar a gravação antes do tempo limite. (Herdado de Stream) |
Métodos
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de leitura assíncrona. (Considere o uso de ReadAsync(Byte[], Int32, Int32) em seu lugar.) (Herdado de Stream) |
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Inicia uma operação de gravação assíncrona. (Considere o uso de WriteAsync(Byte[], Int32, Int32) em seu lugar.) (Herdado de Stream) |
Clone() |
Cria uma cópia deste objeto OracleBFile associado com o mesmo arquivo físico que o original. |
Close() |
Fecha o fluxo atual e libera todos os recursos (como soquetes e identificadores de arquivos) associados ao fluxo atual. Em vez de chamar esse método, verifique se o fluxo é descartado corretamente. (Herdado de Stream) |
CopyTo(Int64, OracleLob, Int64, Int64) |
Copia deste OracleBFile para um destino OracleLob com a quantidade especificada de dados, o deslocamento de origem e o deslocamento de destino. |
CopyTo(OracleLob) |
Copia todo o conteúdo deste OracleBFile para o início de um destino OracleLob. |
CopyTo(OracleLob, Int64) |
Copia todo o conteúdo deste OracleBFile para um destino OracleLob no deslocamento especificado. |
CopyTo(Stream) |
Lê os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyTo(Stream, Int32) |
Lê os bytes do fluxo atual e os grava em outro fluxo usando um tamanho do buffer especificado. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream) |
Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, CancellationToken) |
Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo usando um token de cancelamento especificado. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, Int32) |
Lê de maneira assíncrona os bytes do fluxo atual e os grava em outro fluxo usando um tamanho do buffer especificado. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CopyToAsync(Stream, Int32, CancellationToken) |
Lê de forma assíncrona os bytes do fluxo atual e os grava em outro fluxo usando um tamanho do buffer especificado e um token de cancelamento. Ambas as posições de fluxo são avançadas pelo número de bytes copiados. (Herdado de Stream) |
CreateObjRef(Type) |
Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
CreateWaitHandle() |
Obsoleto.
Obsoleto.
Obsoleto.
Aloca um objeto WaitHandle. (Herdado de Stream) |
Dispose() |
Libera todos os recursos usados por este objeto. |
Dispose() |
Libera todos os recursos usados pelo Stream. (Herdado de Stream) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo Stream e opcionalmente libera os recursos gerenciados. (Herdado de Stream) |
DisposeAsync() |
Libera de forma assíncrona os recursos não gerenciados usados pelo Stream. (Herdado de Stream) |
EndRead(IAsyncResult) |
Espera a leitura assíncrona pendente ser concluída. (Considere o uso de ReadAsync(Byte[], Int32, Int32) em seu lugar.) (Herdado de Stream) |
EndWrite(IAsyncResult) |
Encerra uma operação de gravação assíncrona. (Considere o uso de WriteAsync(Byte[], Int32, Int32) em seu lugar.) (Herdado de Stream) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Flush() |
Não há suporte no momento. |
FlushAsync() |
Limpa de forma assíncrona todos os buffers nesse fluxo e faz com que os dados armazenados em buffer sejam gravados no dispositivo subjacente. (Herdado de Stream) |
FlushAsync(CancellationToken) |
Limpa todos os buffers nesse fluxo de forma assíncrona, faz com que os dados armazenados em buffer sejam gravados no dispositivo subjacente e monitora as solicitações de cancelamento. (Herdado de Stream) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância. (Herdado de MarshalByRefObject) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
InitializeLifetimeService() |
Obsoleto.
Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto MarshalByRefObject atual. (Herdado de MarshalByRefObject) |
ObjectInvariant() |
Obsoleto.
Oferece suporte a um Contract. (Herdado de Stream) |
Read(Byte[], Int32, Int32) |
Lê uma sequência de bytes do fluxo OracleBFile atual de forma assíncrona e avança a posição no fluxo até o número de bytes lidos. |
Read(Span<Byte>) |
Quando for substituído em uma classe derivada, lê uma sequência de bytes do fluxo atual e avança a posição dentro do fluxo até o número de bytes lidos. (Herdado de Stream) |
ReadAsync(Byte[], Int32, Int32) |
Lê uma sequência de bytes do fluxo atual de forma assíncrona e avança a posição no fluxo até o número de bytes lidos. (Herdado de Stream) |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Lê de forma assíncrona uma sequência de bytes do fluxo atual, avança a posição no fluxo até o número de bytes lidos e monitora as solicitações de cancelamento. (Herdado de Stream) |
ReadAsync(Memory<Byte>, CancellationToken) |
Lê de forma assíncrona uma sequência de bytes do fluxo atual, avança a posição no fluxo até o número de bytes lidos e monitora as solicitações de cancelamento. (Herdado de Stream) |
ReadAtLeast(Span<Byte>, Int32, Boolean) |
Lê pelo menos um número mínimo de bytes do fluxo atual e avança a posição dentro do fluxo pelo número de bytes lidos. (Herdado de Stream) |
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken) |
Lê de forma assíncrona pelo menos um número mínimo de bytes do fluxo atual, avança a posição dentro do fluxo pelo número de bytes lidos e monitora solicitações de cancelamento. (Herdado de Stream) |
ReadByte() |
Lê um byte do fluxo e avança a posição no fluxo em um byte ou retorna -1 caso esteja no final do fluxo. (Herdado de Stream) |
ReadExactly(Byte[], Int32, Int32) |
Lê |
ReadExactly(Span<Byte>) |
Lê bytes do fluxo atual e avança a posição dentro do fluxo até que o |
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken) |
Lê |
ReadExactlyAsync(Memory<Byte>, CancellationToken) |
Lê bytes de forma assíncrona do fluxo atual, avança a posição dentro do fluxo até que o |
Seek(Int64, SeekOrigin) |
Define a posição no fluxo OracleBFile atual. |
SetFileName(String, String) |
Associa o objeto OracleBFile a um arquivo diferente no sistema operacional. |
SetLength(Int64) |
Não há suporte no momento. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Write(Byte[], Int32, Int32) |
Não há suporte no momento. |
Write(ReadOnlySpan<Byte>) |
Quando for substituído em uma classe derivada, grava uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo até o número de bytes gravados. (Herdado de Stream) |
WriteAsync(Byte[], Int32, Int32) |
Grava assincronamente uma sequência de bytes no fluxo atual e avança a posição atual dentro desse fluxo no número de bytes gravados. (Herdado de Stream) |
WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento. (Herdado de Stream) |
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Grava uma sequência de bytes no fluxo atual assincronamente, avança a posição atual dentro desse fluxo pelo número de bytes gravados e monitora as solicitações de cancelamento. (Herdado de Stream) |
WriteByte(Byte) |
Grava um byte na posição atual no fluxo e avança a posição dentro no fluxo em um byte. (Herdado de Stream) |
Implantações explícitas de interface
IDisposable.Dispose() |
Libera todos os recursos usados pelo Stream. (Herdado de Stream) |
Aplica-se a
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de