«Разве это не значит, что [манипуляция текстом] больше того, что должно быть запрограммировано в приложении?»
Обычно, да. Общепринятый « трехуровневый » дизайн приложений для баз данных говорит о том, что ваша логика должна находиться в среднем уровне между клиентом и базой данных. Однако иногда вам нужна логика в триггере или нужно индексировать функцию, требуя, чтобы какой-то код был помещен в базу данных. В этом случае все обычные «на каком языке я должен использовать?» возникают вопросы.
Если вам нужна только небольшая логика, вероятно, следует использовать наиболее переносимый язык (pl / pgSQL). Если вам нужно сделать какое-то серьезное программирование, вам может быть лучше использовать более выразительный язык (возможно, pl / ruby). Это всегда будет вызов суда.
«Есть ли веские основания использовать ненадежный язык?»
Как и выше, да. Опять же, возможность прямого доступа к файлам (например) в ваш средний уровень лучше, когда это возможно, но если вам нужно отключить вещи на основе триггеров (для этого может потребоваться доступ к данным, недоступным непосредственно вашему среднему уровню), тогда вам понадобятся ненадежные языки. Это не идеально, и его следует избегать. И вам определенно нужно охранять доступ к нему.