Если вы посмотрите на USER_SOURCE, то увидите, что исходный код, сохраненный / интерпретированный базой данных, будет находиться в столбце VARCHAR2, поэтому используйте набор символов базы данных. Таким образом, ваш исходный код должен быть в WE8ISO8859P1.
Теоретически, если клиент и база данных используют один и тот же набор символов, тогда база данных не будет пытаться выполнить какой-либо перевод набора символов, и вы сможете прокрасться в последовательности байтов, которые база данных считает WE8ISO8859P1, но будет иметь смысл в Unicode. Однако в какой-то момент кто-то использует не тот клиент, и он сломается.
Вам не нужен юникод для идентификаторов и т. Д. В коде, поэтому я предполагаю, что это строковые литералы. Вам лучше хранить их в таблице (столбец NVARCHAR2) и выбирать их в коде, а не жестко их кодировать. Если это невозможно, вы можете использовать UNISTR и жестко закодировать соответствующие шестнадцатеричные значения.