V této odpovědi se pokusím poskytnout informace z oficiálních zdrojů
(1) Doslovný text N''
N'' se používá k převodu řetězce na NCHAR nebo NVARCHAR2 datový typ
Podle této dokumentace Oracle Oracle - Literals
Syntaxe textových literálů je následující:
kde
Nnebonurčuje literál pomocí národní znakové sady (NCHARneboNVARCHAR2údaje).
Také v tomto druhém článku Oracle – Datatypes
N'String' se používá k převodu řetězce na NCHAR datový typ
Z výše uvedeného článku:
Následující příklad porovnává
translated_descriptionve sloupcipm.product_descriptionstabulka s řetězcem národní znakové sady :SELECT translated_description FROM product_descriptions WHERE translated_name = N'LCD Monitor 11/PM';
(2) The U'' Literal
U'' se používá ke zpracování SQL NCHAR String Literals v Oracle Call Interface (OCI)
Na základě této dokumentace Oracle Programming with Unicode
Rozhraní Oracle Call Interface (OCI) je rozhraní API nejnižší úrovně, které používají ostatní produkty pro přístup k databázi na straně klienta. Programům C/C++ poskytuje flexibilní způsob přístupu k datům Unicode uloženým v SQL
CHARaNCHARtypy dat. Pomocí OCI můžete programově určit znakovou sadu (UTF-8, UTF-16 a další) pro data, která mají být vložena nebo načtena. K databázi přistupuje přes Oracle Net.
OCI je API nejnižší úrovně pro přístup k databázi, takže nabízí nejlepší možný výkon.
Zpracování řetězcových literálů SQL NCHAR v OCI
Můžete jej zapnout nastavením proměnné prostředí
ORA_NCHAR_LITERAL_REPLACEnaTRUE. Tohoto chování můžete dosáhnout také programově pomocíOCI_NCHAR_LITERAL_REPLACE_ONaOCI_NCHAR_LITERAL_REPLACE_OFFrežimy vOCIEnvCreate()aOCIEnvNlsCreate(). NapříkladOCIEnvCreate(OCI_NCHAR_LITERAL_REPLACE_ON)zapneNCHARdoslovné nahrazení, zatímcoOCIEnvCreate(OCI_NCHAR_LITERAL_REPLACE_OFF)vypne.[...] Všimněte si, že když
NCHARje zapnuta doslovná náhrada,OCIStmtPrepareaOCIStmtPrepare2transformujeN'literály sU'literály v textu SQL a výsledný text SQL uložit do handle příkazu . Pokud tedy aplikace používáOCI_ATTR_STATEMENTk načtení textu SQL zOCIpopisovač příkazu, text SQL vrátíU'místoN'jak je uvedeno v původním textu .
(3) Odpověď na vaši otázku
Z pohledu datových typů není mezi oběma poskytnutými dotazy rozdíl
