Oracle 程序检查值是否从 http 或 https 开始
Oracle procedure to check if value starts from http or https
我在程序中使用带有“NOT LIKE”的 IF 条件来检查值是从 HTTP 还是 HTTPS 开始。
但是,如果值是否从 HTTP/HTTPS 开始,那么对于这两种情况,它都会附加基数 URL.
需要解决此问题的建议。
if lower(l_value) NOT LIKE 'http://%' or lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
您可能应该使用 AND
而不是 OR
if lower(l_value) NOT LIKE 'http://%' and lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
问题只是or
;那应该是 and
:
if lower(l_value) NOT LIKE 'http://%' and lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
同一个值不能同时匹配两个条件,所以即使匹配了一个也不会匹配另一个;因此,对于任何值,您的原始 or
始终为真。
您可以通过使用 LIKE
然后否定整个 or
条件来获得相同的效果:
if NOT (lower(l_value) LIKE 'http://%' or lower(l_value) LIKE 'https://%') then
l_value := l_baseURL || l_value;
end if;
但我不认为这真的更清楚了。
我在程序中使用带有“NOT LIKE”的 IF 条件来检查值是从 HTTP 还是 HTTPS 开始。 但是,如果值是否从 HTTP/HTTPS 开始,那么对于这两种情况,它都会附加基数 URL.
需要解决此问题的建议。
if lower(l_value) NOT LIKE 'http://%' or lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
您可能应该使用 AND
而不是 OR
if lower(l_value) NOT LIKE 'http://%' and lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
问题只是or
;那应该是 and
:
if lower(l_value) NOT LIKE 'http://%' and lower(l_value) NOT LIKE 'https://%' then
l_value := l_baseURL || l_value;
end if;
同一个值不能同时匹配两个条件,所以即使匹配了一个也不会匹配另一个;因此,对于任何值,您的原始 or
始终为真。
您可以通过使用 LIKE
然后否定整个 or
条件来获得相同的效果:
if NOT (lower(l_value) LIKE 'http://%' or lower(l_value) LIKE 'https://%') then
l_value := l_baseURL || l_value;
end if;
但我不认为这真的更清楚了。