Как преобразовать код postgreSQL в Oracle SQL

Эта проблема может возникнуть, если вы откроете свой код как file:///C:/.../xxx.html вместо http:// localhost/xxx.html. Хром не сохраняет файлы cookie (поскольку в file:// не существует домена и нет http-связи).

Несколько интересных ссылок:

0
задан a_horse_with_no_name 5 March 2019 в 16:58
поделиться

2 ответа

right() с отрицательным аргументом в Postgres используется довольно редко. Но эквивалент в Oracle будет substr(x, 2), поэтому один метод:

SELECT *
FROM file 
WHERE file_name IS NOT NULL AND
      REGEXP_LIKE(CASE WHEN file_name LIKE '\\%' THEN substr(file_name, 2) 
                       ELSE file_name 
                  END), '^[.]|[.] 

Однако я бы сделал это, используя одно регулярное выражение в любой базе данных:

WHERE REGEXP_LIKE(file_name, '^(\\)?[.]|[.] 

Я вижу Нет смысла использовать case при выполнении сопоставления регулярных выражений такого типа. Сравнение с NULL просто избыточно.

);

Я вижу Нет смысла использовать case при выполнении сопоставления регулярных выражений такого типа. Сравнение с NULL просто избыточно.

);

Однако я бы сделал это, используя одно регулярное выражение в любой базе данных:

WHERE REGEXP_LIKE(file_name, '^(\\)?[.]|[.] 

Я вижу Нет смысла использовать case при выполнении сопоставления регулярных выражений такого типа. Сравнение с NULL просто избыточно.

);

Я вижу Нет смысла использовать case при выполнении сопоставления регулярных выражений такого типа. Сравнение с NULL просто избыточно.

0
ответ дан Gordon Linoff 5 March 2019 в 16:58
поделиться

Вместо right() Postgres вам нужно использовать Oracle substr ()
и вместо ~ (чувствительные к регистру регулярные выражения типа оператора) regexp_like () функция с 'c' в качестве аргумента 3d (то есть с учетом регистра, хотя может быть опущена):

SELECT * FROM file 
WHERE 
  file_name IS NOT NULL 
  AND
  REGEXP_LIKE(
    CASE 
      WHEN file_name LIKE '\\%' THEN substr(file_name, 2) 
      ELSE file_name 
    END, '^[.]|[.], 'c');
0
ответ дан forpas 5 March 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: