/ / Fitnesse a dbFit: ako uniknúť dvojbodkám v SQL dotazoch - testovanie, fitness, dbfit

Fitnesse a dbFit: ako uniknúť dvojbodkám v SQL dotazoch - testovanie, fitnesse, dbfit

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ď č. 1

Myslí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|