2010-03-17 17 views

risposta

172

Ad hoc è latino per "per questo scopo". Potresti chiamarlo una query "al volo" o una query "solo così". E 'il tipo di query SQL è sufficiente digitare vagamente fuori dove serve

var newSqlQuery = "SELECT * FROM table WHERE id = " + myId; 

... che è una query completamente diverso ogni volta che si esegue questa riga di codice, a seconda del valore di myId. L'opposto di una query ad hoc è una query predefinita come una stored procedure, in cui è stata creata una singola query per l'intero scopo generalizzato di selezione da quella tabella (ad esempio) e passare l'ID come variabile.

+12

@David Hedlund la query è vulnerabile a 'attacchi SQL injection' ... È necessario utilizzare il parametro. – Parid0kht

+27

@Paridokht: Certamente. Non sto sostenendo che uso, sto spiegando il concetto di una query ad hoc, che era la domanda. –

+9

@DavidHedlund: Sì, capisco ... ma potrebbe essere meglio menzionarlo nella risposta perché ci sono utenti che lo leggono e non hanno idea di questo attacco. – Parid0kht

-4

In Sql Server "Query Ad Hoc" viene utilizzato anche per le query distribuite ad hoc. Si tratta di query ad hoc su un altro server tramite OpenRowset o OpenDatasource. Le query distribuite ad hoc sono consentite solo dopo averlo configurato. Questa è un'opzione di configurazione del server.

+0

non si tratta di SQL Server. la questione non riguardava una particolare soluzione di impresa, ma piuttosto una comprensione generale del significato di query ad hoc – arthur

1

Inoltre, si desidera aggiungere che la query ad hoc è vulnerabile agli attacchi di SQL injection. Dovremmo cercare di evitare di usarlo e utilizzare invece SQL parametrizzati (like PreparedStatement in Java).

+6

Una query ad hoc non è vulnerabile a SQL Injection. Una query non parametrizzata che accetta input dell'utente è vulnerabile a SQL Injection. – Ben

+0

@Ben Una query ad-hoc è sempre non parametrizzata. Non può essere attaccato SQL injection se non vengono esposte le variabili agli utenti; ma il punto è che la query ad-hoc è rischiosa per SQL Injection. – xli

20

Una query ad-hoc è una query che non può essere determinata prima del rilascio della query. Viene creato per ottenere informazioni in caso di necessità ed è costituito da SQL dinamicamente costruito, che viene generalmente creato dagli strumenti di query residenti sul desktop.

Check: http://www.learn.geekinterview.com/data-warehouse/dw-basics/what-is-an-ad-hoc-query.html

+0

Quindi se scrivo una query statica ed eseguo una volta, non è "ad hoc"? – jumxozizi

0

query ad hoc sono quelli che non sono già definite che non sono necessari su base regolare, in modo che non siano inclusi nel tipico set di report o query

+0

Puoi spiegare di cosa stai scrivendo di più? Qual è il "set tipico"; intendi codice compilato? – Ben

-3

un annuncio -Hoc query è:

  1. Domanda pre-pianificata.
  2. Domanda pre-programmata.
  3. sprone del momento domanda.
  4. Domanda che non restituirà alcun risultato.
+0

Cosa significa in termini SQL? Inoltre, non tutte le "Domande che non restituiscono alcun risultato". sono ad hocs. – jumxozizi

-3

La query ad hoc è un tipo di definizione computer. Il che significa che questa query è appositamente progettata per ottenere qualsiasi informazione quando è solo necessaria. Predefinite. fare riferimento a questo https://www.youtube.com/watch?v=0c8JEKmVXhU

+0

Penso che "Predefinito" sia l'opposto di "ad hoc". – jumxozizi

0

Una query ad-hoc è una query che non può essere determinata prima che venga emessa la query. Viene creato per ottenere informazioni in caso di necessità ed è costituito da SQL dinamicamente costruito, che viene generalmente creato dagli strumenti di query residenti sul desktop. Una query ad hoc non risiede nel computer o nel gestore database ma viene creata dinamicamente in base alle esigenze dell'utente dei dati.

In SQL, una query ad hoc è un comando/query di tipo generico il cui valore dipende da alcune variabili. Ogni volta che il comando viene eseguito, il risultato è diverso, a seconda del valore della variabile. Non può essere predeterminato e solitamente rientra nella query SQL di programmazione dinamica. Una query ad hoc ha vita breve e viene creata in fase di runtime.

Problemi correlati