Я пытаюсь преобразовать материал PowerBuilder (содержащий оператор PBSELECT) в java. Я довольно удобен для других вещей, кроме оператора PBSELECT внутри него.
Я хочу преобразовать приведенный ниже оператор PBSELECT в стандартный формат SQL.
PBSELECT( VERSION(400)
TABLE(NAME="table_barcode" )
TABLE(NAME="table_barcode_attrib_map" )
TABLE(NAME="table_barcode_attribute" )
COLUMN(NAME="table_barcode.label_name")
COMPUTE(NAME="IsNull(table_barcode_attrib_map.value,0) pacmed_valid")
JOIN (LEFT="table_barcode.barcode_id" OP ="=" RIGHT="table_barcode_attrib_map.barcode_id" OUTER1 ="table_barcode.barcode_id" )
JOIN (LEFT="table_barcode_attrib_map.attribute_id" OP ="=" RIGHT="table_barcode_attribute.attribute_id" OUTER1 ="table_barcode_attrib_map.attribute_id" )
WHERE( EXP1 ="( ~~"table_barcode~~".~~"barcode_id~~"" OP ="=" EXP2 =":as_barcode_id )" LOGIC ="and" )
WHERE( EXP1 ="table_barcode_attribute.attribute_name" OP ="=" EXP2 ="'PACMED VALID FLAG'" ) )
ARG(NAME = "as_barcode_id" TYPE = string)
в инструкции PBSELECT я не могу понять предложение JOIN с OUTER1 и первым WHERE, содержащим шаблон ~~".
Пожалуйста, помогите мне преобразовать PBSELECT в стандартный SQL. Любая помощь высоко ценится.
~
является escape-символом внутри строк PB, и он, по-видимому, используется для экранирования имен таблиц и имен столбцов, которые заключены в двойные кавычки, а двойные кавычки, в свою очередь, необходимо экранировать. Таким образом, синтаксис sql изначально читается как"table_barcode"."barcode_id"
, но в выражении DW в DW painter это~"table_barcode~".~"barcode_id~"
, а в сохраненном синтаксисе DW~~"table_barcode~~".~~"barcode_id~~"
- person Seki   schedule 18.02.2014