Mám problém s únikom dvojbodiek a pomlčkami v SQL dotazoch, keď používam dbFit s Fitnesse.
Takéto vyhlásenie nefunguje:
!|Query|select to_char(my_birthday,"YYYY-MM-DD HH24:MI:SI") from family|
Musím nahradiť dvojbodky a pomlčky s niektorými ďalšími prijateľnými znakmi, napr.
!|Query|select to_char(my_birthday,"YYYY_MM_DD HH24_MI_SI") from family|
Viete, ako to správne vyriešiť bez použitia druhého prístupu?
Na zdravie, foxrafi
odpovede:
3 pre odpoveď č. 1Myslím, že to je to, čo potrebujete. z http://dbfit.github.io/dbfit/docs/reference.html
Vyhnutie sa mapovaniu parametrov
Ak chcete zabrániť mapovaniu DbFitparametre na viazanie premenných (napr. na vykonanie definície uloženej procedúry, ktorá obsahuje znak @ v Sql Serveri), pred spustením funkcie dopyt.
| set option | viazať symboly | false |
| Vykonať | vložiť do užívateľov hodnoty (meno, užívateľské meno) ("@hey", "uuu") |
| query | select * od používateľov | | Názov | username | | @Hey | uuu |
Nezabudnite po spustení dotazu znova aktivovať túto možnosť. Môžeš použite rovnaký trik s príkazom Execute.
1 pre odpoveď č. 2
Okrem Mikeovej odpovede to môžete vyriešiť aj pomocou parametrov viazania, čo je užitočné, ak musíte použiť parametre viazania na iných miestach v tom istom dotaze.
!|DatabaseEnvironment|ORACLE|
|Connect|${HOSTNAME}|${USERNAME}|${PASSWORD}|
!|Query|!-select current_timestamp ts from dual-!|
|ts?|
|>>my_birthday_ts|
|set parameter|my_birthday_ts| <<my_birthday_ts|
#Set bind parameter :MI to string ":MI"
|set parameter|MI|:MI|
# and do it in the same way with :SS.
|set parameter|SS|:SS|
!|Query|!-select to_char(:my_birthday_ts, "YYYY-MM-DD HH24"|| :MI || :SS) bds from dual-!|
|bds?|
|>>birthday_string|
Všimnite si, že musíte použiť! - -! okolo vášho dotazu, inak FitNesse rozšíri operátora zreťazenia na bunky tabuľky. Hlavnou nevýhodou tohto spôsobu je, že v dotaze nemôžete používať bežné premenné FitNesse ($ {varname}).
0 pre odpoveď č. 3
!|DatabaseEnvironment|ORACLE|
|Connect|${HOSTNAME}|${USERNAME}|${PASSWORD}|
!|Query|!-select current_timestamp ts from dual-!|
|ts?|
|>>my_birthday_ts|
!|Query|!-select to_char(:my_birthday_ts, "YYYY-MM-DD HH24:"||"MI:"||"SS) bds from dual-!|
|bds?|
|>>birthday_string|