Evviva, aleluia, hosanas!! Eis que surge um/uma desenvolvedor/a que ao menos já ouviu falar em bind variables, não estamos pregando no deserto nesses quase 3 anos de grupo oracle...
Seguinte, primeiro vamos mostrar o que são as danadas : imagine que vc tem um SQL que se repetirá várias vezes no decorrer da sua aplicação (um SELECT pra buscar o nome de departamenteo, digamos), e a cada vez vc o vai executar com um argumento (o código do departamento, digamos) diferente - o texto do SQL é o mesmo, mas o valor muda. Se o seu programa enviar pro banco Oracle : SELECT nnnn FROM tabela WHERE cod = 45; depois SELECT nnnn FROM tabela WHERE cod = 50; e depois SELECT nnnn FROM tabela WHERE cod = 10; esses 3 SQLs são absolutamente DIFERENTES pro otimizador Oracle, então CADA UM deles foi "compilado" separadamente, gastou CPU, ocupou áreas diferentes do cache de SQLs do banco... Já se vc "pedisse" pro banco criar uma variável (digamo, X) e vc executasse 3 vezes o texto abaixo : SELECT nnnn FROM tabela WHERE cod = :X ; só passando valores diferentes para X , o texto é sempre o mesmo, então esse SQL foi "compilado" SÓ UMA única vez na primeira execução (a segunda e a terceira rodaram do cache), o SQL está ocupando APENAS uma área de memória, logicamente é MUITO mais eficiente ... Essa variável X , fixa no texto do SQL, é a chamada BIND VARIABLE. E como vc usa essa maravilha ?? Em não sendo uma linguagem/tool que faça automaticamente isso (como o Oracle Forms faz) - é o que ocorre com o Delphi - aí a primeira possibilidade é vc, AO INVÉS de manter o textos dos seus SQLs no programa delphi, vc criar PROCEDURES/PACKAGES em PL/SQL que façam os comandos SQL desejados, dentro do banco, e a partir do seu programa Delphi vc só chama as proceds/packages. Em sendo SQL estático (não-dinâmico), a PL/SQL já faz uso de variáveis BIND automagicamente, nada é exigido. Isso tem os seus defensores ardorosos, até entre alguns gurus Oracle, pois além do bind automático esse método te dá uma flexibilidade total de front-end : estando a camada SQl dentro do banco, se amanhã vc quiser trocar o front-end, ou se precisar fazer os mesmos procedimentos em outro sistema, é transparente pro banco, uma proced/package Oracle pode ser chamada, SEM MUDANÇA nenhuma nela, a partir de delphi, de cobol, de vb, de C, e n outras menos votadas. Com isso vc também ganha vantagem na flexibilidade de manutenção : caso uma rotina de consulta (digamos) esteja com problemas de performance, ou tenha que ser alterada logicamente, vc simplesmente altera & recompila a proced/package e pronto, não precisou tocar numa linha do programa front-end. A segunda possibilidade, se vc quiser manter o SQL dentro do programa delphi, exige que vc use a sintaxe/método apropriado, o que VAI VARIAR de aacordo com o programa/middleware usado pra conectar com o banco, que pode ser ODBC, OLEDB/ADO, soft/métodos do próprio delphi (em algumas versões ele traz coisas nesse sentido), OU ainda drivers/métodos de terceiros, como o DOA (Direct Oracle Access) em http://www.allroundautomations.nl Já que depende do que vc usa pra conectar nesta segunda opção, se for isso que vc pretende, recomendo : mande outro e-mail dizendo EXATAMENTE qual é a versão do Delphi, sistema operacional usado, versão do banco, método/soft de acesso ao banco, E um trecho curto de como vc hoje monta e envia pro banco os seus SQLs, que a gente pode te dar uma resposta mais específica - o meu conhecimento de Delphi é ridiculamente pequeno, mas aqui na lista sei que existem profissionais delphi, que com certeza podem dar uma colaboração. []s Chiappa lógica vc tem duas possibilidades : Há linguagens/tools que automaticamente já fazem isso --- Em oracle_br@yahoogrupos.com.br, "Daniela Fumes" <[EMAIL PROTECTED]> escreveu > Olá a todos! > > Meu nome é Daniela, sou nova por aqui e estou em busca de > esclarecimentos sobre o uso de 'bind variables'. > Na empresa onde trabalho temos um sistema em oracle com interface > delphi e precisamos MUITO otimizar alguns processos e a recomendação > foi o uso de bind. > > Vcs podem me ajudar? > > Agradeço a atenção! > > Daniela ORACLE_BR APOIA 2ºENPO-BR _____________________________________________________________________ O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e Cases dirigidos exclusivamente por profissionais especialistas e renomados no mercado. Confira a programação no site do evento! http://www.enpo-br.org/ _____________________________________________________________________ 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