Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Olá Marco .. Gostaria, primeiramente , de agradecer pela dica que vc deu na lista e tb pela forma como vc disse .Maneira muito educada e respeitosa . É o seguinte : Tenho um SIG .. Sistema de Informação Geografica . Software que basicamente manipula mapas , com dados vetoriais e tb dados Raster (foto de satelite) INFELIZMENTE , eu sou obrigado a criar e apagar tabelas dinamicamente , sei que para administração do banco nao é muito recomendavel , mas para a aplicação é extremamente necessario . Quando um usuario deseja visualizar um mapa , ele importa para a base de dados e posteriormente eu manipulo essas informaçoes para visualização na interface e tb faço processamentos, como calculos de Area, distancia , interpolacao, Analises Espaciais, etc ... por isso a necessidade . Quando ele ( usuario) apaga um mapa , eu consigo saber as tabelas que foram criadas e apago todas . Estou enfrentando esse problema em apenas um cliente . Realmente deve ser configuração do usuário no banco . Porem , como eu disse no e-mail , nao sou um usuario muito experiente e achei que alguem poderia me indicar alguma possivel causa. Estou dando uma estudada na estrutura do campo blob e tb como o Oracle trabalha com esse tipo de campo . Muito obrigado pela dica. INFELIZMENTE existem muitos DBA´s EXTREMAMENTE EXPERIENTES e que apenas apontam possiveis problemas , de maneira MAL EDUCADA, sem conhecer a aplicação chegando a DESRESPEITAR o profissional em questao . Mais uma vez muito obrigado , BOa Sorte e Sucesso !!! []´s LITO [EMAIL PROTECTED] escreveu: Permitam-me opinar a respeito. Concordo com o Chiappa qdo ele diz que é no mínimo estranho que uma aplicação execute comandos DDL ! isso me parece mais um "erro" de modelagem da aplicação do que necessidade propriamente dita. Só pra começar, se o usuário de conexão da aplicação tem direito de criação de tabelas (e vai saber lá o que mais colocaram na role deste usuário) é bem provável que vc terá problemas com este banco. Pelo menos deve-se consultar um dba (decente) para restringir ao máximo os comandos DDL que este usuário pode rodar de dentro da aplicação e com certeza deve-se usar os parâmetros na criação da tabela e índices para reduzir as chances de danificar o BD. Uma outra perguntinha que fica na minha cuca é se esta mesma aplicação permite "dropar" as tabelas criadas. Caso contrário, como se consegue administrar estas tabelas ? Isso realmente não tem nada a ver com a solução do porque não está criando o campo blob. O erro deve ser, como o próprio Chiappa comentou, erro de sintaxe (ou de parse). Mas acredito que uma revisão nesta aplicação para ela faça apenas DML (insert, update, delete) seja muito recomendável do ponto de vista do banco de dados (desempenho, administração, tunning,etc). Abraço e boa sorte. Marco. "jlchiappa" <[EMAIL PROTECTED]> Sent by: oracle_br@yahoogrupos.com.br 28/07/2005 13:09 Please respond to oracle_br To: oracle_br@yahoogrupos.com.br cc: Subject: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente) --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Chiappa , > > Infelizmente a aplicação necessita criar tabelas dinamicamente . Negócio meio danado esse, DDL é bem caro em termos de performance, mas enfim Só o que eu comentaria é que, se for criar, AO MENOS criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais inseridas que ataualizadas -, especificando CACHEs e separação dos LOBs onde/quando necessário, constraints com nome (informar constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE assume-se tudo default, e em MUITOS casos o default é totalmente INSATISFATÓRIO para performance/segurança/administração. > o script que esta no codigo da aplicação é esse : > > > CREATE TABLE TESTE > (geom_id integer not null, > object_id varchar(50) not null, > num_coordsinteger, > num_holes integer, > parent_id integer, > lower_x float not null, > lower_y float not null, > upper_x float not null, > upper_y float not null, > ext_max float not null, > spatial_data blob , > primary key (geom_id,lower_x)) > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : chiappa:SQL>CREATE TABLE TESTE 2 (geom_id integer not null, 3 object_id varchar(50) not null, 4 num_coords integer, 5 num_holes integer, 6 parent_id integer, 7 lower_x float not null, 8 lower_y float not null, 9 upper_x float not null, 10 upper_y float not null, 11 ext_max float not null, 12 spatial_data blob , 13 primary key (geom_id,lower_x)) 14 chiappa:SQL>/ Tabela criada. MUITO certamente
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Oi Chiapa .. Muito obrigado pelas Dicas ... E vou seguir seu conselho sobre a contratação de um bom profissional Oracle . [ ]´s jlchiappa <[EMAIL PROTECTED]> escreveu: "tablespaces que são ilimitadas" : hmmm, NÂO EXISTE isso de tablespace ilimitada no bd Oracle, o que existe é : a) DATAFILES autoextend unlimited , que sim, crescem até enquanto a área em disco original aguentar e/ou até oslimites do SO ou b) a permissão QUOTA UNLIMITED , que indica que o usuário que a tem pode usar a tablespace inetira, se quiser ou c) a permissão UNLIMITED TABLESPACE, que indica que o usuário que a recebeu pode usar qquer tablespace que for criada. Essas maneira indecentes são indecentes MESMO, tranquilamente isso pode levar à fragmentação de banco, a desperdício de espaço E o ponto levantado na outra msg é ABSOLUTAMENTE pertinente : a aplicação vai criando as tabelas , provavelmente ao bel-prazer dela, aí quem as limpa depois ?? Será que esse banco não vai ficar com TROCENTAS tabelas que vc não sabe se estão sendo usadas ou não ? Não vai dar um desperdício FEDERAL de recursos aí não ??? Já que vc é iniciante, eu RECOMENDARIA, se for desejado que esse sistema tenha ao menos uma chance RAZOÁVEL de funcionar um pouco melhor que uma tartaruga manca anêmica, que alguém com mais conhecimento de Oracle participasse desse processo. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Rodrigo .. Chiappa e amigos da lista > > Rodrigo : O problema é o mesmo que vc esta enfrentando , eu tenho uma rotina de criação de tabelas que recebe APENAS um parametro .. o nome da tabela . > > Chiappa: Isso explica o pq eu mandei o script como create table TESTE , o nome vem como parametro da aplicação. > Assim como o rodrigo , sou iniciante em programação utilizando o Oracle,talvez por isso esteja criando tabelas de maneiras indecentes (como vc disse ) > risos :-) > O sistema utiliza um usuario criado no banco , com permissao para escrever na TableSpace ( Sig_Data ) e na Temporaria ( Temp ) , que sao ilimitadas. > > Muito obrigado pelas dicas ... > > [ ]´s > > > > > Rodrigo Silva <[EMAIL PROTECTED]> escreveu: > Olá, Wellington, boa tarde! > > Não sei se eu entendi direito. O usuário entra com a sql no teu > aplicativo, ou a criação da tabela é feita internamente, por uma > rotina fixa do mesmo? > > Estou enfrentando um problema semelhante, porém no meu caso o script > de criação é embutido no aplicativo através de rotinas de criação dos > mesmos, onde eu somente passo como parâmetro o nome da tabela em > questão e ele cria. No meu caso, eu também tenho campo BLOB na mesma. > No meu caso, mesmo eu pegando a sql de criação e rodando no sql*plus, > ele levanta o mesmo erro. É o teu caso também? > > Aos mais experientes, eu sou inciante em programação utilizando o > banco Oracle. Gostaria de saber se campos do tipo BLOB são armazenados > em tablespaces diferentes do especificado pelas permissões do usuário > em relação ao uso das mesmas, e como o Oracle gerencia isto. > > Muito obrigado! > > Rodrigo > > > > > Em 28/07/05, jlchiappa<[EMAIL PROTECTED]> escreveu: > > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > > escreveu > > > Olá Chiappa , > > > > > > Infelizmente a aplicação necessita criar tabelas dinamicamente . > > > > Negócio meio danado esse, DDL é bem caro em termos de performance, > > mas enfim Só o que eu comentaria é que, se for criar, AO MENOS > > criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, > > com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais > > inseridas que ataualizadas -, especificando CACHEs e separação dos > > LOBs onde/quando necessário, constraints com nome (informar > > constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, > > o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE > > assume-se tudo default, e em MUITOS casos o default é totalmente > > INSATISFATÓRIO para performance/segurança/administração. > > > > > o script que esta no codigo da aplicação é esse : > > > > > > > > > CREATE TABLE TESTE > > > (geom_id integer not null, > > > object_id varchar(50) not null, > > > num_coordsinteger, > > > num_holes integer, > > > parent_id integer, > > > lower_x float not null, > > > lower_y float not null, > > > upper_x float not null, > > > upper_y float not null, > > > ext_max float not null, > > > spatial_data blob , > > > primary key (geom_id,lower_x)) > > > > > > > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : > > > > chiappa:SQL>CREATE TABLE TESTE > > 2 (geom_id integer not null, > > 3 object_id varchar(50) not null, > > 4 num_coords integer, > > 5 num_holes integer, > > 6 parent_id integer, > > 7 lower_x float not null, > > 8 lower_y float not null, > > 9 upper_x float not null, >
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Oi Chiapa .. Muito obrigado pelas Dicas ... E vou seguir seu conselho sobre a contratação de um bom profissional Oracle . [ ]´s jlchiappa <[EMAIL PROTECTED]> escreveu: "tablespaces que são ilimitadas" : hmmm, NÂO EXISTE isso de tablespace ilimitada no bd Oracle, o que existe é : a) DATAFILES autoextend unlimited , que sim, crescem até enquanto a área em disco original aguentar e/ou até oslimites do SO ou b) a permissão QUOTA UNLIMITED , que indica que o usuário que a tem pode usar a tablespace inetira, se quiser ou c) a permissão UNLIMITED TABLESPACE, que indica que o usuário que a recebeu pode usar qquer tablespace que for criada. Essas maneira indecentes são indecentes MESMO, tranquilamente isso pode levar à fragmentação de banco, a desperdício de espaço E o ponto levantado na outra msg é ABSOLUTAMENTE pertinente : a aplicação vai criando as tabelas , provavelmente ao bel-prazer dela, aí quem as limpa depois ?? Será que esse banco não vai ficar com TROCENTAS tabelas que vc não sabe se estão sendo usadas ou não ? Não vai dar um desperdício FEDERAL de recursos aí não ??? Já que vc é iniciante, eu RECOMENDARIA, se for desejado que esse sistema tenha ao menos uma chance RAZOÁVEL de funcionar um pouco melhor que uma tartaruga manca anêmica, que alguém com mais conhecimento de Oracle participasse desse processo. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Rodrigo .. Chiappa e amigos da lista > > Rodrigo : O problema é o mesmo que vc esta enfrentando , eu tenho uma rotina de criação de tabelas que recebe APENAS um parametro .. o nome da tabela . > > Chiappa: Isso explica o pq eu mandei o script como create table TESTE , o nome vem como parametro da aplicação. > Assim como o rodrigo , sou iniciante em programação utilizando o Oracle,talvez por isso esteja criando tabelas de maneiras indecentes (como vc disse ) > risos :-) > O sistema utiliza um usuario criado no banco , com permissao para escrever na TableSpace ( Sig_Data ) e na Temporaria ( Temp ) , que sao ilimitadas. > > Muito obrigado pelas dicas ... > > [ ]´s > > > > > Rodrigo Silva <[EMAIL PROTECTED]> escreveu: > Olá, Wellington, boa tarde! > > Não sei se eu entendi direito. O usuário entra com a sql no teu > aplicativo, ou a criação da tabela é feita internamente, por uma > rotina fixa do mesmo? > > Estou enfrentando um problema semelhante, porém no meu caso o script > de criação é embutido no aplicativo através de rotinas de criação dos > mesmos, onde eu somente passo como parâmetro o nome da tabela em > questão e ele cria. No meu caso, eu também tenho campo BLOB na mesma. > No meu caso, mesmo eu pegando a sql de criação e rodando no sql*plus, > ele levanta o mesmo erro. É o teu caso também? > > Aos mais experientes, eu sou inciante em programação utilizando o > banco Oracle. Gostaria de saber se campos do tipo BLOB são armazenados > em tablespaces diferentes do especificado pelas permissões do usuário > em relação ao uso das mesmas, e como o Oracle gerencia isto. > > Muito obrigado! > > Rodrigo > > > > > Em 28/07/05, jlchiappa<[EMAIL PROTECTED]> escreveu: > > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > > escreveu > > > Olá Chiappa , > > > > > > Infelizmente a aplicação necessita criar tabelas dinamicamente . > > > > Negócio meio danado esse, DDL é bem caro em termos de performance, > > mas enfim Só o que eu comentaria é que, se for criar, AO MENOS > > criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, > > com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais > > inseridas que ataualizadas -, especificando CACHEs e separação dos > > LOBs onde/quando necessário, constraints com nome (informar > > constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, > > o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE > > assume-se tudo default, e em MUITOS casos o default é totalmente > > INSATISFATÓRIO para performance/segurança/administração. > > > > > o script que esta no codigo da aplicação é esse : > > > > > > > > > CREATE TABLE TESTE > > > (geom_id integer not null, > > > object_id varchar(50) not null, > > > num_coordsinteger, > > > num_holes integer, > > > parent_id integer, > > > lower_x float not null, > > > lower_y float not null, > > > upper_x float not null, > > > upper_y float not null, > > > ext_max float not null, > > > spatial_data blob , > > > primary key (geom_id,lower_x)) > > > > > > > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : > > > > chiappa:SQL>CREATE TABLE TESTE > > 2 (geom_id integer not null, > > 3 object_id varchar(50) not null, > > 4 num_coords integer, > > 5 num_holes integer, > > 6 parent_id integer, > > 7 lower_x float not null, > > 8 lower_y float not null, > > 9 upper_x float not null, >
[oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
"tablespaces que são ilimitadas" : hmmm, NÂO EXISTE isso de tablespace ilimitada no bd Oracle, o que existe é : a) DATAFILES autoextend unlimited , que sim, crescem até enquanto a área em disco original aguentar e/ou até oslimites do SO ou b) a permissão QUOTA UNLIMITED , que indica que o usuário que a tem pode usar a tablespace inetira, se quiser ou c) a permissão UNLIMITED TABLESPACE, que indica que o usuário que a recebeu pode usar qquer tablespace que for criada. Essas maneira indecentes são indecentes MESMO, tranquilamente isso pode levar à fragmentação de banco, a desperdício de espaço E o ponto levantado na outra msg é ABSOLUTAMENTE pertinente : a aplicação vai criando as tabelas , provavelmente ao bel-prazer dela, aí quem as limpa depois ?? Será que esse banco não vai ficar com TROCENTAS tabelas que vc não sabe se estão sendo usadas ou não ? Não vai dar um desperdício FEDERAL de recursos aí não ??? Já que vc é iniciante, eu RECOMENDARIA, se for desejado que esse sistema tenha ao menos uma chance RAZOÁVEL de funcionar um pouco melhor que uma tartaruga manca anêmica, que alguém com mais conhecimento de Oracle participasse desse processo. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Rodrigo .. Chiappa e amigos da lista > > Rodrigo : O problema é o mesmo que vc esta enfrentando , eu tenho uma rotina de criação de tabelas que recebe APENAS um parametro .. o nome da tabela . > > Chiappa: Isso explica o pq eu mandei o script como create table TESTE , o nome vem como parametro da aplicação. > Assim como o rodrigo , sou iniciante em programação utilizando o Oracle,talvez por isso esteja criando tabelas de maneiras indecentes (como vc disse ) > risos :-) > O sistema utiliza um usuario criado no banco , com permissao para escrever na TableSpace ( Sig_Data ) e na Temporaria ( Temp ) , que sao ilimitadas. > > Muito obrigado pelas dicas ... > > [ ]´s > > > > > Rodrigo Silva <[EMAIL PROTECTED]> escreveu: > Olá, Wellington, boa tarde! > > Não sei se eu entendi direito. O usuário entra com a sql no teu > aplicativo, ou a criação da tabela é feita internamente, por uma > rotina fixa do mesmo? > > Estou enfrentando um problema semelhante, porém no meu caso o script > de criação é embutido no aplicativo através de rotinas de criação dos > mesmos, onde eu somente passo como parâmetro o nome da tabela em > questão e ele cria. No meu caso, eu também tenho campo BLOB na mesma. > No meu caso, mesmo eu pegando a sql de criação e rodando no sql*plus, > ele levanta o mesmo erro. É o teu caso também? > > Aos mais experientes, eu sou inciante em programação utilizando o > banco Oracle. Gostaria de saber se campos do tipo BLOB são armazenados > em tablespaces diferentes do especificado pelas permissões do usuário > em relação ao uso das mesmas, e como o Oracle gerencia isto. > > Muito obrigado! > > Rodrigo > > > > > Em 28/07/05, jlchiappa<[EMAIL PROTECTED]> escreveu: > > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > > escreveu > > > Olá Chiappa , > > > > > > Infelizmente a aplicação necessita criar tabelas dinamicamente . > > > > Negócio meio danado esse, DDL é bem caro em termos de performance, > > mas enfim Só o que eu comentaria é que, se for criar, AO MENOS > > criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, > > com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais > > inseridas que ataualizadas -, especificando CACHEs e separação dos > > LOBs onde/quando necessário, constraints com nome (informar > > constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, > > o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE > > assume-se tudo default, e em MUITOS casos o default é totalmente > > INSATISFATÓRIO para performance/segurança/administração. > > > > > o script que esta no codigo da aplicação é esse : > > > > > > > > > CREATE TABLE TESTE > > > (geom_id integer not null, > > > object_id varchar(50) not null, > > > num_coordsinteger, > > > num_holes integer, > > > parent_id integer, > > > lower_x float not null, > > > lower_y float not null, > > > upper_x float not null, > > > upper_y float not null, > > > ext_max float not null, > > > spatial_data blob , > > > primary key (geom_id,lower_x)) > > > > > > > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : > > > > chiappa:SQL>CREATE TABLE TESTE > > 2 (geom_id integer not null, > > 3 object_id varchar(50) not null, > > 4 num_coords integer, > > 5 num_holes integer, > > 6 parent_id integer, > > 7 lower_x float not null, > > 8 lower_y float not null, > > 9 upper_x float not null, > > 10 upper_y float not null, > > 11 ext_max float not null, > > 12 spatial_data blob , > > 13 primary key (geom_id,lower_x)) > > 14 > > chiappa:SQL>/ > > > > Tabela criad
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Olá Rodrigo .. Chiappa e amigos da lista Rodrigo : O problema é o mesmo que vc esta enfrentando , eu tenho uma rotina de criação de tabelas que recebe APENAS um parametro .. o nome da tabela . Chiappa: Isso explica o pq eu mandei o script como create table TESTE , o nome vem como parametro da aplicação. Assim como o rodrigo , sou iniciante em programação utilizando o Oracle,talvez por isso esteja criando tabelas de maneiras indecentes (como vc disse ) risos :-) O sistema utiliza um usuario criado no banco , com permissao para escrever na TableSpace ( Sig_Data ) e na Temporaria ( Temp ) , que sao ilimitadas. Muito obrigado pelas dicas ... [ ]´s Rodrigo Silva <[EMAIL PROTECTED]> escreveu: Olá, Wellington, boa tarde! Não sei se eu entendi direito. O usuário entra com a sql no teu aplicativo, ou a criação da tabela é feita internamente, por uma rotina fixa do mesmo? Estou enfrentando um problema semelhante, porém no meu caso o script de criação é embutido no aplicativo através de rotinas de criação dos mesmos, onde eu somente passo como parâmetro o nome da tabela em questão e ele cria. No meu caso, eu também tenho campo BLOB na mesma. No meu caso, mesmo eu pegando a sql de criação e rodando no sql*plus, ele levanta o mesmo erro. É o teu caso também? Aos mais experientes, eu sou inciante em programação utilizando o banco Oracle. Gostaria de saber se campos do tipo BLOB são armazenados em tablespaces diferentes do especificado pelas permissões do usuário em relação ao uso das mesmas, e como o Oracle gerencia isto. Muito obrigado! Rodrigo Em 28/07/05, jlchiappa<[EMAIL PROTECTED]> escreveu: > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > escreveu > > Olá Chiappa , > > > > Infelizmente a aplicação necessita criar tabelas dinamicamente . > > Negócio meio danado esse, DDL é bem caro em termos de performance, > mas enfim Só o que eu comentaria é que, se for criar, AO MENOS > criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, > com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais > inseridas que ataualizadas -, especificando CACHEs e separação dos > LOBs onde/quando necessário, constraints com nome (informar > constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, > o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE > assume-se tudo default, e em MUITOS casos o default é totalmente > INSATISFATÓRIO para performance/segurança/administração. > > > o script que esta no codigo da aplicação é esse : > > > > > > CREATE TABLE TESTE > > (geom_id integer not null, > > object_id varchar(50) not null, > > num_coordsinteger, > > num_holes integer, > > parent_id integer, > > lower_x float not null, > > lower_y float not null, > > upper_x float not null, > > upper_y float not null, > > ext_max float not null, > > spatial_data blob , > > primary key (geom_id,lower_x)) > > > > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : > > chiappa:SQL>CREATE TABLE TESTE > 2 (geom_id integer not null, > 3 object_id varchar(50) not null, > 4 num_coords integer, > 5 num_holes integer, > 6 parent_id integer, > 7 lower_x float not null, > 8 lower_y float not null, > 9 upper_x float not null, > 10 upper_y float not null, > 11 ext_max float not null, > 12 spatial_data blob , > 13 primary key (geom_id,lower_x)) > 14 > chiappa:SQL>/ > > Tabela criada. > > MUITO certamente o seu sistema deve deixar o usuário-final montar a > tabela (ou o sistema monta com base em infos fornecidas por ele), e > no caso em questão o cara deve estar fornecendo alguma entrada > incorreta. Eu recomendaria que vc ** INSTRUMENTASSE ** o aplicativo, > para que num caso de erro seja armazenado ** EXATAMENTE ** o texto do > SQL em questão (já que obviamente não deve ter sido esse que vc > passou, até pelo nome), aí vc pode encontrar EXATAMENTE onde está a > falha. NADA a ver com "configuração", absolutamente NÂO há > parâmetro "enable_aleatory_error_msg_annoy_the_world", > quase com > certeza OU o banco DEVE estar recebendo SQL ruim, ok ?? > > []s > > Chiappa > > > Nao sei o que esta acontencendo , mas pode ser alguma coisa na > configuração do Oracle , ou do Usuario ? > > > > Muito obrigado pela atenção .. > > > > [ ]´s > > > > Wellington > > > > > > jlchiappa <[EMAIL PROTECTED]> escreveu: > > > No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, > > erro de sintaxe. Corrigindo isso, roda normal : > > > > chiappa:SQL>create table teste ( > > 2 id integer not null , > > 3 media blob )); > > media blob )) > > * > > ERRO na linha 3: > > ORA-00922: opção ausente ou inválida > > > > > > chiappa:SQL>ed > > Gravou arquivo afiedt.buf > > > > 1 create table teste ( > > 2 id integer not null , > > 3* media blob ) > > chiappa:SQL>/ > > > > Tabela criada. > > > > chiappa:SQL> > >
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Permitam-me opinar a respeito. Concordo com o Chiappa qdo ele diz que é no mínimo estranho que uma aplicação execute comandos DDL ! isso me parece mais um "erro" de modelagem da aplicação do que necessidade propriamente dita. Só pra começar, se o usuário de conexão da aplicação tem direito de criação de tabelas (e vai saber lá o que mais colocaram na role deste usuário) é bem provável que vc terá problemas com este banco. Pelo menos deve-se consultar um dba (decente) para restringir ao máximo os comandos DDL que este usuário pode rodar de dentro da aplicação e com certeza deve-se usar os parâmetros na criação da tabela e índices para reduzir as chances de danificar o BD. Uma outra perguntinha que fica na minha cuca é se esta mesma aplicação permite "dropar" as tabelas criadas. Caso contrário, como se consegue administrar estas tabelas ? Isso realmente não tem nada a ver com a solução do porque não está criando o campo blob. O erro deve ser, como o próprio Chiappa comentou, erro de sintaxe (ou de parse). Mas acredito que uma revisão nesta aplicação para ela faça apenas DML (insert, update, delete) seja muito recomendável do ponto de vista do banco de dados (desempenho, administração, tunning,etc). Abraço e boa sorte. Marco. "jlchiappa" <[EMAIL PROTECTED]> Sent by: oracle_br@yahoogrupos.com.br 28/07/2005 13:09 Please respond to oracle_br To: oracle_br@yahoogrupos.com.br cc: Subject: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente) --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Chiappa , > > Infelizmente a aplicação necessita criar tabelas dinamicamente . Negócio meio danado esse, DDL é bem caro em termos de performance, mas enfim Só o que eu comentaria é que, se for criar, AO MENOS criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais inseridas que ataualizadas -, especificando CACHEs e separação dos LOBs onde/quando necessário, constraints com nome (informar constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE assume-se tudo default, e em MUITOS casos o default é totalmente INSATISFATÓRIO para performance/segurança/administração. > o script que esta no codigo da aplicação é esse : > > > CREATE TABLE TESTE > (geom_id integer not null, > object_id varchar(50) not null, > num_coordsinteger, > num_holes integer, > parent_id integer, > lower_x float not null, > lower_y float not null, > upper_x float not null, > upper_y float not null, > ext_max float not null, > spatial_data blob , > primary key (geom_id,lower_x)) > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : chiappa:SQL>CREATE TABLE TESTE 2 (geom_id integer not null, 3 object_id varchar(50) not null, 4 num_coords integer, 5 num_holes integer, 6 parent_id integer, 7 lower_x float not null, 8 lower_y float not null, 9 upper_x float not null, 10 upper_y float not null, 11 ext_max float not null, 12 spatial_data blob , 13 primary key (geom_id,lower_x)) 14 chiappa:SQL>/ Tabela criada. MUITO certamente o seu sistema deve deixar o usuário-final montar a tabela (ou o sistema monta com base em infos fornecidas por ele), e no caso em questão o cara deve estar fornecendo alguma entrada incorreta. Eu recomendaria que vc ** INSTRUMENTASSE ** o aplicativo, para que num caso de erro seja armazenado ** EXATAMENTE ** o texto do SQL em questão (já que obviamente não deve ter sido esse que vc passou, até pelo nome), aí vc pode encontrar EXATAMENTE onde está a falha. NADA a ver com "configuração", absolutamente NÂO há parâmetro "enable_aleatory_error_msg_annoy_the_world", quase com certeza OU o banco DEVE estar recebendo SQL ruim, ok ?? []s Chiappa > Nao sei o que esta acontencendo , mas pode ser alguma coisa na configuração do Oracle , ou do Usuario ? > > Muito obrigado pela atenção .. > > [ ]´s > > Wellington > > > jlchiappa <[EMAIL PROTECTED]> escreveu: > No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, > erro de sintaxe. Corrigindo isso, roda normal : > > chiappa:SQL>create table teste ( > 2 id integer not null , > 3 media blob )); > media blob )) > * > ERRO na linha 3: > ORA-00922: opção ausente ou inválida > > > chiappa:SQL>ed > Gravou arquivo afiedt.buf > > 1 create table teste ( > 2 id integer not null , > 3* media blob ) > chiappa:SQL>/ > > Tabela criada. > > chiappa:SQL> > > então veja lá se simplesmente não é erro de sintaxe, qquer coisa
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Olá, Wellington, boa tarde! Não sei se eu entendi direito. O usuário entra com a sql no teu aplicativo, ou a criação da tabela é feita internamente, por uma rotina fixa do mesmo? Estou enfrentando um problema semelhante, porém no meu caso o script de criação é embutido no aplicativo através de rotinas de criação dos mesmos, onde eu somente passo como parâmetro o nome da tabela em questão e ele cria. No meu caso, eu também tenho campo BLOB na mesma. No meu caso, mesmo eu pegando a sql de criação e rodando no sql*plus, ele levanta o mesmo erro. É o teu caso também? Aos mais experientes, eu sou inciante em programação utilizando o banco Oracle. Gostaria de saber se campos do tipo BLOB são armazenados em tablespaces diferentes do especificado pelas permissões do usuário em relação ao uso das mesmas, e como o Oracle gerencia isto. Muito obrigado! Rodrigo Em 28/07/05, jlchiappa<[EMAIL PROTECTED]> escreveu: > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > escreveu > > Olá Chiappa , > > > > Infelizmente a aplicação necessita criar tabelas dinamicamente . > > Negócio meio danado esse, DDL é bem caro em termos de performance, > mas enfim Só o que eu comentaria é que, se for criar, AO MENOS > criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, > com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais > inseridas que ataualizadas -, especificando CACHEs e separação dos > LOBs onde/quando necessário, constraints com nome (informar > constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, > o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE > assume-se tudo default, e em MUITOS casos o default é totalmente > INSATISFATÓRIO para performance/segurança/administração. > > > o script que esta no codigo da aplicação é esse : > > > > > > CREATE TABLE TESTE > > (geom_id integer not null, > > object_id varchar(50) not null, > > num_coordsinteger, > > num_holes integer, > > parent_id integer, > > lower_x float not null, > > lower_y float not null, > > upper_x float not null, > > upper_y float not null, > > ext_max float not null, > > spatial_data blob , > > primary key (geom_id,lower_x)) > > > > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : > > chiappa:SQL>CREATE TABLE TESTE > 2 (geom_id integer not null, > 3 object_id varchar(50) not null, > 4 num_coords integer, > 5 num_holes integer, > 6 parent_id integer, > 7 lower_x float not null, > 8 lower_y float not null, > 9 upper_x float not null, > 10 upper_y float not null, > 11 ext_max float not null, > 12 spatial_data blob , > 13 primary key (geom_id,lower_x)) > 14 > chiappa:SQL>/ > > Tabela criada. > > MUITO certamente o seu sistema deve deixar o usuário-final montar a > tabela (ou o sistema monta com base em infos fornecidas por ele), e > no caso em questão o cara deve estar fornecendo alguma entrada > incorreta. Eu recomendaria que vc ** INSTRUMENTASSE ** o aplicativo, > para que num caso de erro seja armazenado ** EXATAMENTE ** o texto do > SQL em questão (já que obviamente não deve ter sido esse que vc > passou, até pelo nome), aí vc pode encontrar EXATAMENTE onde está a > falha. NADA a ver com "configuração", absolutamente NÂO há > parâmetro "enable_aleatory_error_msg_annoy_the_world", > quase com > certeza OU o banco DEVE estar recebendo SQL ruim, ok ?? > > []s > > Chiappa > > > Nao sei o que esta acontencendo , mas pode ser alguma coisa na > configuração do Oracle , ou do Usuario ? > > > > Muito obrigado pela atenção .. > > > > [ ]´s > > > > Wellington > > > > > > jlchiappa <[EMAIL PROTECTED]> escreveu: > > > No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, > > erro de sintaxe. Corrigindo isso, roda normal : > > > > chiappa:SQL>create table teste ( > > 2 id integer not null , > > 3 media blob )); > > media blob )) > > * > > ERRO na linha 3: > > ORA-00922: opção ausente ou inválida > > > > > > chiappa:SQL>ed > > Gravou arquivo afiedt.buf > > > > 1 create table teste ( > > 2 id integer not null , > > 3* media blob ) > > chiappa:SQL>/ > > > > Tabela criada. > > > > chiappa:SQL> > > > > então veja lá se simplesmente não é erro de sintaxe, qquer coisa > > poste aqui o SQL ** real ** que a aplicação tenta executar. > > > > E é claro, num off-topic, tabela sendo criada pela aplicação é no > > mínimo incomum, já que IMHO é o DBA que sabe quais opções são > > recomendadas, sair criando automatizadamente (de qquer jeito em > qquer > > local, que é o que normalmente ocorre) não é muito recomendável. > > > > []s > > > > Chiappa > > > > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > > escreveu > > > > > > Olá Pessoal .. > > > > > > Gostaria de saber se alguem pode me ajudar ( URGENTE ) . > > > Estou participando do desenvolvimento de um sistema com o Oracle >
[oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
--- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > Olá Chiappa , > > Infelizmente a aplicação necessita criar tabelas dinamicamente . Negócio meio danado esse, DDL é bem caro em termos de performance, mas enfim Só o que eu comentaria é que, se for criar, AO MENOS criar decentemente, ie : em tablespaces LMT, de tamanhos adequados, com PCTFREE/PCTUSED corretos - principalmente para as tabelas mais inseridas que ataualizadas -, especificando CACHEs e separação dos LOBs onde/quando necessário, constraints com nome (informar constraint PK/FK/NN, etc, sem nome faz o banco as criar como SYS_xxx, o que é DE LASCAR na administração ... Vc fazer só o CREATE TABLE assume-se tudo default, e em MUITOS casos o default é totalmente INSATISFATÓRIO para performance/segurança/administração. > o script que esta no codigo da aplicação é esse : > > > CREATE TABLE TESTE > (geom_id integer not null, > object_id varchar(50) not null, > num_coordsinteger, > num_holes integer, > parent_id integer, > lower_x float not null, > lower_y float not null, > upper_x float not null, > upper_y float not null, > ext_max float not null, > spatial_data blob , > primary key (geom_id,lower_x)) > COM CERTEZA é pau de lógica , esse scripts que vc passou ´funciona : chiappa:SQL>CREATE TABLE TESTE 2 (geom_id integer not null, 3 object_id varchar(50) not null, 4 num_coords integer, 5 num_holes integer, 6 parent_id integer, 7 lower_x float not null, 8 lower_y float not null, 9 upper_x float not null, 10 upper_y float not null, 11 ext_max float not null, 12 spatial_data blob , 13 primary key (geom_id,lower_x)) 14 chiappa:SQL>/ Tabela criada. MUITO certamente o seu sistema deve deixar o usuário-final montar a tabela (ou o sistema monta com base em infos fornecidas por ele), e no caso em questão o cara deve estar fornecendo alguma entrada incorreta. Eu recomendaria que vc ** INSTRUMENTASSE ** o aplicativo, para que num caso de erro seja armazenado ** EXATAMENTE ** o texto do SQL em questão (já que obviamente não deve ter sido esse que vc passou, até pelo nome), aí vc pode encontrar EXATAMENTE onde está a falha. NADA a ver com "configuração", absolutamente NÂO há parâmetro "enable_aleatory_error_msg_annoy_the_world", quase com certeza OU o banco DEVE estar recebendo SQL ruim, ok ?? []s Chiappa > Nao sei o que esta acontencendo , mas pode ser alguma coisa na configuração do Oracle , ou do Usuario ? > > Muito obrigado pela atenção .. > > [ ]´s > > Wellington > > > jlchiappa <[EMAIL PROTECTED]> escreveu: > No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, > erro de sintaxe. Corrigindo isso, roda normal : > > chiappa:SQL>create table teste ( > 2 id integer not null , > 3 media blob )); > media blob )) > * > ERRO na linha 3: > ORA-00922: opção ausente ou inválida > > > chiappa:SQL>ed > Gravou arquivo afiedt.buf > > 1 create table teste ( > 2 id integer not null , > 3* media blob ) > chiappa:SQL>/ > > Tabela criada. > > chiappa:SQL> > > então veja lá se simplesmente não é erro de sintaxe, qquer coisa > poste aqui o SQL ** real ** que a aplicação tenta executar. > > E é claro, num off-topic, tabela sendo criada pela aplicação é no > mínimo incomum, já que IMHO é o DBA que sabe quais opções são > recomendadas, sair criando automatizadamente (de qquer jeito em qquer > local, que é o que normalmente ocorre) não é muito recomendável. > > []s > > Chiappa > > --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> > escreveu > > > > Olá Pessoal .. > > > > Gostaria de saber se alguem pode me ajudar ( URGENTE ) . > > Estou participando do desenvolvimento de um sistema com o Oracle > 9i . > > Quando o sistema necessita criar uma tabela com o campo BLOB , > acontece um erro ( ORA-00922 - missing or invalid option ) > > > > Qualquer outra tabela , que nao tenha o campo do tipo Blob, a > criação é realizada com sucesso . > > > > O mais estranho é que em outras 3 bases de dados , isso nao > acontece. > > > > > > Alguem pode me ajudar , preciso muito encontrar uma solução. > > > > Desde ja muito obrigado > > > > > > > > PS : create table teste ( > > id integer not null , > > media blob )); > > Uma tabela simples assim nao cria ... :( > > > > > > > > > > __ > > Converse com seus amigos em tempo real com o Yahoo! Messenger > > http://br.download.yahoo.com/messenger/ > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > __ > > Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ > Falar com os Moderadores:([EMAIL PROTECTED]) > Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar > _
Re: [oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
Olá Chiappa , Infelizmente a aplicação necessita criar tabelas dinamicamente . É um sistema de informação geografica. o script que esta no codigo da aplicação é esse : CREATE TABLE TESTE (geom_id integer not null, object_id varchar(50) not null, num_coordsinteger, num_holes integer, parent_id integer, lower_x float not null, lower_y float not null, upper_x float not null, upper_y float not null, ext_max float not null, spatial_data blob , primary key (geom_id,lower_x)) Nao sei o que esta acontencendo , mas pode ser alguma coisa na configuração do Oracle , ou do Usuario ? Muito obrigado pela atenção .. [ ]´s Wellington jlchiappa <[EMAIL PROTECTED]> escreveu: No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, erro de sintaxe. Corrigindo isso, roda normal : chiappa:SQL>create table teste ( 2 id integer not null , 3 media blob )); media blob )) * ERRO na linha 3: ORA-00922: opção ausente ou inválida chiappa:SQL>ed Gravou arquivo afiedt.buf 1 create table teste ( 2 id integer not null , 3* media blob ) chiappa:SQL>/ Tabela criada. chiappa:SQL> então veja lá se simplesmente não é erro de sintaxe, qquer coisa poste aqui o SQL ** real ** que a aplicação tenta executar. E é claro, num off-topic, tabela sendo criada pela aplicação é no mínimo incomum, já que IMHO é o DBA que sabe quais opções são recomendadas, sair criando automatizadamente (de qquer jeito em qquer local, que é o que normalmente ocorre) não é muito recomendável. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > > Olá Pessoal .. > > Gostaria de saber se alguem pode me ajudar ( URGENTE ) . > Estou participando do desenvolvimento de um sistema com o Oracle 9i . > Quando o sistema necessita criar uma tabela com o campo BLOB , acontece um erro ( ORA-00922 - missing or invalid option ) > > Qualquer outra tabela , que nao tenha o campo do tipo Blob, a criação é realizada com sucesso . > > O mais estranho é que em outras 3 bases de dados , isso nao acontece. > > > Alguem pode me ajudar , preciso muito encontrar uma solução. > > Desde ja muito obrigado > > > > PS : create table teste ( > id integer not null , > media blob )); > Uma tabela simples assim nao cria ... :( > > > > > __ > Converse com seus amigos em tempo real com o Yahoo! Messenger > http://br.download.yahoo.com/messenger/ > > [As partes desta mensagem que não continham texto foram removidas] __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ - Links do Yahoo! Grupos Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço do Yahoo!. - Yahoo! Acesso Grátis: Internet rápida e grátis. Instale o discador agora! [As partes desta mensagem que não continham texto foram removidas] __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[oracle_br] Re: Erro na criação de Tabelas com campo BLOB (urgente)
No seu exemplo vc tem DOIS parêntesis, quando deveria haver um só, erro de sintaxe. Corrigindo isso, roda normal : chiappa:SQL>create table teste ( 2 id integer not null , 3 media blob )); media blob )) * ERRO na linha 3: ORA-00922: opção ausente ou inválida chiappa:SQL>ed Gravou arquivo afiedt.buf 1 create table teste ( 2 id integer not null , 3* media blob ) chiappa:SQL>/ Tabela criada. chiappa:SQL> então veja lá se simplesmente não é erro de sintaxe, qquer coisa poste aqui o SQL ** real ** que a aplicação tenta executar. E é claro, num off-topic, tabela sendo criada pela aplicação é no mínimo incomum, já que IMHO é o DBA que sabe quais opções são recomendadas, sair criando automatizadamente (de qquer jeito em qquer local, que é o que normalmente ocorre) não é muito recomendável. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Wellington <[EMAIL PROTECTED]> escreveu > > Olá Pessoal .. > > Gostaria de saber se alguem pode me ajudar ( URGENTE ) . > Estou participando do desenvolvimento de um sistema com o Oracle 9i . > Quando o sistema necessita criar uma tabela com o campo BLOB , acontece um erro ( ORA-00922 - missing or invalid option ) > > Qualquer outra tabela , que nao tenha o campo do tipo Blob, a criação é realizada com sucesso . > > O mais estranho é que em outras 3 bases de dados , isso nao acontece. > > > Alguem pode me ajudar , preciso muito encontrar uma solução. > > Desde ja muito obrigado > > > > PS : create table teste ( > id integer not null , > media blob )); > Uma tabela simples assim nao cria ... :( > > > > > __ > Converse com seus amigos em tempo real com o Yahoo! Messenger > http://br.download.yahoo.com/messenger/ > > [As partes desta mensagem que não continham texto foram removidas] __ Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ Falar com os Moderadores:([EMAIL PROTECTED]) Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar __ Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html