Как добавить clob к clob в указанном c месте? - PullRequest
0 голосов
/ 30 марта 2020

v_clob_long clob; v_clob_short clob;

У меня есть две переменные clob, и мне нужно вставить v_clob_short прямо перед 2 последними символами v_clob_long. Возможно ли это, и если да, то как?

Проблема в том, что у меня есть большой json объект, и мне нужно добавить объект меньшего размера json в качестве свойства, однако json пакеты, которые мы используем, на самом деле не позволяют мне этого делать.

Oracle версия - 11g, если это имеет значение.

1 Ответ

0 голосов
/ 31 марта 2020

Да, это возможно благодаря использованию функции substr() и применению функции to_clob() после окончания конкатенации:

select to_clob
       (  substr(v_clob_long,1,length(t.v_clob_long)-2)||
                 v_clob_short||
          substr(v_clob_long,-2)) 
  from tab

при условии, что эти имена переменных являются именами столбцов таблицы tab, если каждая объединена штук, подходящих по длине 4000 символов. В противном случае вам нужно применить substr(v_clob_col,1,4000) столько, сколько нужно, например

select to_clob
       (  substr(v_clob_long,1,4000)||
          substr(substr(v_clob_long,4001,length(t.v_clob_long)-2)||
                 v_clob_short||
          substr(v_clob_long,-2)) 
  from tab
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...