Мне нужно было выяснить, с каким сервером DHCP я был подключен через Ubuntu 14.04, поэтому я использовал эту команду:
nmcli dev list|grep DHCP4
, поскольку это то, что я хотел только из исходной команды «nmcli dev list»
DHCP4.OPTION [1]: expiry = 1464073312
DHCP4.OPTION [2]: domain_name = [omitted_proper_details]
DHCP4.OPTION [3]: broadcast_address = 10.1.45.255
DHCP4.OPTION [4]: dhcp_message_type = 5
DHCP4.OPTION [5]: dhcp_lease_time = 432000
DHCP4.OPTION [ 6]: ip_address = 10.1.45.132
DHCP4.OPTION [7]: subnet_mask = 255.255.255.0
DHCP4.OPTION [8]: dhcp_renewal_time = 216000
[d10 ] DHCP4.OPTION [9]: routers = 10.1.45.1DHCP4.OPTION [10]: domain_name_servers = 10.1.26.10 10.1.20.10
DHCP4.OPTION [11]: dhcp_rebinding_time = 378000
DHCP4.OPTION [12]: network_number = 10.1.45.0
DHCP4.OPTION [13]: dhcp_server_identifier = 10.1.20.10
Дает мне все детали DCHP / DNS, которые мне нужны, так же, как «IPCONFIG / ALL»
Я не уверен, что понимаю, что вы описали. Для чего используется «другая таблица»; Хорошо, вы сохраняете первичные ключи из 3 «основных» таблиц, но - почему?
В любом случае: если FIELD_NAME является числовым, тогда имеет смысл применить NVL к нему и «преобразовать» NULL в 0 (ноль), но - если это не так, тогда это может быть проблемой (*).
Вот что предлагают все те одиночные кавычки, которые вы используете, - что FIELD_NAME является символьным полем, поэтому вы включаете его значение в одинарные кавычки. Трудно следить за многими цитатами, поэтому - почему бы вам не переключиться на что-то более простое, например
'column_name=' || chr(39) || :block_name.field_name || chr(39)
, где chr(39) представляет одну цитату.
To продолжите возможную проблему (*) с помощью NVL: если это так, рассмотрите использование другого синтаксиса и избегайте NVL:
'column_name=' || chr(39) || :block_name.field_name || chr(39) ||
' or ' || :block_name.field_name || ' is null'