В отличие от нашей Windows службы приложений, nameresolver.exe недоступен, а настройки приложения для «WEBSITES_ALT_DNS» и «WEBSITES_DNS» не заполняют файлы конфигурации в контейнере. Ниже приведены шаги по устранению проблем с изображениями на основе Alpine, поскольку вы не упоминаете, используете ли вы контейнер Linux или ОС Linux по умолчанию.
Установить Bind-tools-
Запустить Nslookup-
После привязки -tools установлен, вы увидите сервер, который используется. Если bind-tools не установлен, DNS-сервер не будет показан. Пример приведен ниже.
9031977be93a:~# nslookup google.com
Server: 127.0.0.11
Address: 127.0.0.11#53
Non-authoritative answer:
Name: google.com
Address: 216.58.194.174
Name: google.com
Address: 2607:f8b0:4005:801::200e
Обновить файл конфигурации-
Чтобы использовать другой DNS-сервер для тестирования, обновите файл / etc / resolv. Conf файл и обновите «сервер имен», чтобы использовать другой DNS-сервер. В этом примере мы используем Googles DNS.
поиск reddog.microsoft.com nameserver 127.0.0.11 опции тайм-аута: 1 попытка: 5 ндотов: 0cd / etc
поиск reddog.microsoft.com nameserver 8.8.8.8 опции timeout: 1 попытки: 5 ndots: 0
9031977be93a:~# nslookup google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: google.com
Address: 216.58.194.174
Name: google.com
Address: 2607:f8b0:4005:804::200e
Жесткое кодирование имени хоста-
Вы также можете жестко закодировать IP-адрес для рассматриваемого имени хоста для тестирования , Для этого вам необходимо обновить следующий файл.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.20.0.2 9031977be93a
10.10.10.10 www.polytechniks.com
9031977be93a:~# ping www.polytechniks.com
PING www.polytechniks.com (10.10.10.10): 56 data bytes
--- www.polytechniks.com ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss
9031977be93a:~# traceroute www.polytechniks.com
traceroute to www.polytechniks.com (10.10.10.10), 30 hops max, 46 byte packets
1 172.20.0.1 (172.20.0.1) 0.005 ms 0.004 ms 0.004 ms
Мы можем сделать это с помощью функционального индекса. В следующем примере используется NVL2()
, который, как вы знаете, возвращает одно значение, если выражение не равно нулю, и другое значение, если оно равно нулю. Вы можете использовать CASE()
вместо этого.
SQL> create table blah (name varchar2(10), email varchar2(20))
2 /
Table created.
SQL> create unique index blah_uidx on blah
2 (nvl2(email, name, null), nvl2(name, email, null))
3 /
Index created.
SQL> insert into blah values ('APC', null)
2 /
1 row created.
SQL> insert into blah values ('APC', null)
2 /
1 row created.
SQL> insert into blah values (null, 'apc@example.com')
2 /
1 row created.
SQL> insert into blah values (null, 'apc@example.com')
2 /
1 row created.
SQL> insert into blah values ('APC', 'apc@example.com')
2 /
1 row created.
SQL> insert into blah values ('APC', 'apc@example.com')
2 /
insert into blah values ('APC', 'apc@example.com')
*
ERROR at line 1:
ORA-00001: unique constraint (APC.BLAH_UIDX) violated
SQL>
Редактировать
Поскольку в вашем сценарии имя всегда будет заполняться, вам потребуется только такой индекс:
SQL> create unique index blah_uidx on blah
2 (nvl2(email, name, null), email)
3 /
Index created.
SQL>