Oznámení
Omlouváme se, provoz fóra byl ukončen
Oracle: uvozovky ve vnořeném SQL dotazu
Upozornění: Tohle vlákno je hodně staré.
před 6 lety
- radas
- Člen | 210
dibi 2.1.0
Ahoj,
pokud mám vnořený SQL dotaz, tak se u něj všechny sloupce, název tabulky
apod. uvozují jen jednoduchými uvozovkami namísto dvojitými.
Příklad:
$connection->select(array('ITEM', 'VALUE'))
->from('CONFIG_DEFAULT')
->where('[ITEM] NOT IN (%sql)', $connection->select('[ITEM]')
->from('CONFIG')
->where('[ID] = %i', 2)
->__toString()
)
->test();
vypíše
SELECT "ITEM", "VALUE"
FROM "CONFIG_DEFAULT"
WHERE "ITEM" NOT IN (
SELECT 'ITEM'
FROM 'CONFIG'
WHERE 'ID' = 2)
což při spuštění způsobí chybu ORA-00903: neplatný název tabulky.
před 6 lety
- Milo
- Nette Core | 1119
Používej %SQL
. %sql
se escapuje, ale DibiFluent
je už oescapovaný.
před 6 lety
- radas
- Člen | 210
Díky Milo, máš pravdu, teď už to funguje správně.