Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carlos Edu

Oracle 10g - Aspas dupla no select.

Recommended Posts

Bom Dia,

 

Estou com um probleminha, migrei uma aplicaçao de SQL Server para oracle express 10g, até ai tudo bem, porem o oracle 10g faz as consultas utilizando as tabelas e atributos em aspas dupla.

Gostaria de saber se estas aspas são parametros e se há outro jeito de fazer as consultas. As aspas tbm refletem no delphi, ou seja as tabelas só são reconhecidas no delphi se utilizar aspas.

 

Desde ja agradeço.

Carlos Edu http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte,

 

A versão XE foi contruida sobre a plataforma 10GR2. Só não entendi como você pode estar utilizando as aspas duplas na chamada de tabela, poderia passar um exemplo?

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/dormindo.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por ajudar Dr.Seguinte, se eu utilizar assim da certo:select "tproduto"."CODIGOPRO"from "tproduto" "tproduto"Se eu utilizar assim:select "tproduto"."codigopro"from "tproduto" "tproduto"*simplesmente auterando maiuscula/minuscula ja da o erro.ORA-00904: "tproduto"."codigopro": identificador inválidoselect codigoprofrom tproduto*Assim da o erro:ORA-00942: a tabela ou view não existeA versão esta do lado direito em baixo: Application Express 2.1.0.00.39

Compartilhar este post


Link para o post
Compartilhar em outros sites

Padrões Microsoft... hehhehehehehehehe isso acontece mesmo ao visualizar a instrução SQL, tanto em SQL Server ou Access. Primeiramente, retire as ASPAS duplas das tabelas, não precisa de ASPAS SIMPLES OU DUPLAS! NADA! Depois veja com qual usuário você está conectado e verifique qual usuário está criado a tabela, você deve estar com usuários diferentes! Isso pode ser resolvido fornecendo um GRANT SELECT TO USUARIO_DA_TABELA; Abraços, :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá AlphamekObrigado pela ajuda, porém não sei como proceder, sou principiante ainda no oracle!como fornecer um GRANT SELECT TO USUARIO_DA_TABELA?Obrigado pelas dicas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez você esteja tentando fazer um SELECT em tabelas de diferentes usuários, e para isso, UM usuário DEVE ter direiro de SELECT, UPDATE, INSERT ou DELETE na tabela do outro usuário para conseguir realizar a operação, caso contrario, terá erros do ORA-00942.

 

Para isso, faça o seguinte:

 

1 - Faça um LOGIN no SQL*PLUS (Linha do comando) com seu usuário;

2 - Emita o comando show user;

3 - Depois, realize o seguinte SELECT:

 

SQL > SELECT table_name FROM user_tables WHERE table_name in ('NOME_DA_TABELA1','NOME_DA_TABELA2');

 

Coloque o nome das tabelas que tentou acessar na instrução acima, para ver se está no seu usuário.

 

Caso venha Não há linhas selecionadas, entre com o usuário SYSTEM ou OUTRO USUÁRIO TENHA AS TABELAS!

 

4 - Caso acesse como SYSTEM, faça o comando:

 

SQL > SELECT owner, table_name FROM dba_tables WHERE table_name in ('NOME_DA_TABELA1','NOME_DA_TABELA2');

 

E veja quem é proprietario das tabelas que está procurando.

 

5 - Agoram, forneca somente as permissões que deseja, exemplo:

 

SQL > GRANT SELECT ON USUARIO1.TABELA1 TO MEU_USUARIO;

 

ATENÇÃO!

 

USUARIO1 = é o usuário que apareceu na coluna OWNER ao lado do nome da tabela que pesquisou.

TABELA1 = é o nome da tabela que pesquisamos dentro da cláusula IN.

MEU_USUARIO = é o usuário que tentou utilizar nos primeiros passos, quando executamos o comando SHOW USER.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/dormindo.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, Bom Rodrigo, Na verdade fiz tudo o que pediu, quando dei o select apareceram dois usuaios o system e o que uso admin. Na verdade utilizo este usuario e a tabela esta com ele. É este mesmo o precedimento?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim ele aceita tbm;select * from "tempresa"Na verdade só é encessário as tabelas entre aspas.Carlos Edu*Programar também é uma expressão artistica.*

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que percebi, quando fiz exportação pelo DTS do Sql Server ele gerou a tabela da seguinte maneiro "USUARIO"."tabela".Conforme duvida a cima, as minhas consultas só eram possiveis se eu utilizasse:select * from "tabela"Fiz o seguinte: RENAME "tabela" to tabela.E assim resolveu o problema. Não sei se o problema aconteceu por causa da exporaçao.Carlos EduDesenv. Delphi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi devido ao DTS, ele sempre coloca as " em nomes de tabela e coluna, terá que tirar das instruções para resolver. Como dito anteriormente.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.