Pull to refresh

Comments 15

Ну например затем, чтобы парсить не совсем JSON, как в примере в конце
А не сложно будет уточнить что вы имели в виду? Какой-то из стандартных пакетов PL/SQL умеет работать с чистым json? Можно название для того чтобы мог полистать документацию? Т.к. я что-то пока не нашёл ничего в стандартной поставке.
Видел java-библиотеки прикрученные к PL/SQL… причём, похоже не «родные». Типа того же PL/JSON. Или стороннего DBMS_JSON.
Я что-то пропустил или не там ищу?
Судя по первоначальному тексту комментария (пришедшему мне на почту), имелась в виду та ссылка, которую я давал в начале статьи.
Хм, но это Oracle Java, а не Oracle Database.
Конечно, джава код можно встраивать в PL/SQL… но производительность двух методов ещё стоит сравнить. Вообще добавление поддержки джавы достаточно ресурсоёмкое…
Начиная с 8i в Oracle Database встроенная java. Я не пробовал прикручивать код по этой ссылке на сервере, не могу сказать что все сразу будет работать. Кроме того, есть сторонние пакеты для разбора JSON написанные на чистом PL/SQL. Тут нет никакой ракетной науки.
На счёт «встроенной» джавы — это несколько общая фраза. Взаимодействие Оракла (в частности мы говорим сейчас о PL/SQL Engine) и JVM может быть реализовано несколькимим методами и я этого не отрицал, обратите внимание. Лучше сравните производительность, это будет действительно интересно.

Ну и если мы вспомним версии «начиная с 8», то могу напомнить что особенно на старых версиях поддержка джавы не включалась в стандартную установку. При добавлении оной, словарь и набор системных объектов уверичивался на приблизительно 30 000 объёктов! Если не верите, можете проверить на вашей базе, сделайте что-то типа:

SELECT count(*)
FROM user_objects
WHERE object_name NOT LIKE 'SYS_%' AND
object_name NOT LIKE 'CREATE$%' AND
object_name NOT LIKE 'JAVA$%' AND
object_name NOT LIKE 'LOADLOB%' AND
object_type LIKE 'JAVA %'

И да, ракетной науки нету, так попробуйте. В большинстве случаев эквивалентный код будет работать не быстрее (а за счёт переключения контекста — ещё и медленнее), на то уже много статей написано, повторятся не буду.
Согласен практически по всем пунктам. Вопрос производительности, в этой задаче, правда не стоит. Ну и вряд ли можно сейчас найти современный Oracle без установленной Java. По поводу сторонних пакетов тоже согласен. Предпочитаю несложные вещи делать сам.
Про сторонние я и спрашивал выше. Стандартных пакетов нету. Сторонние — палка о двух концах. С одной стороны не тратим время на разработку, с другой — в случае проблем можем не получить support.
Интересно, а для чего используете JSON? По примеру похоже, для хранения метаданных. Из разобранного дерева стоите динамический DDL для создания таблиц?
Только для кастомизации, а не для создания. Я не хотел бы в этом топике углубляться в эту тему, поскольку оффтопик.
Если интересно, можно пообщаться в приватной переписке.
и все же вопрос «НУ ЗАЧЕМ»???????? Я бы за такое руки поотбивал. Очередной вселенский хак, который выглядит как вроде как прикольное решение но на самом деле вы даже не представляете, что сидите на бомбе замедленного действия. И как раз проблема в том и есть, что то, что не проходит «валидацию json» у вас ее пройдет.

P.S. Чем STRUCT и ARRAY вам службу не сослужили?
Затем, что мне понадобился удобный формат для описания своих метаданных. Поясню, мне не понадобился ИМЕННО JSON. Именно JSON (с его ARRAY-ами и STRUCT-ами) как таковой мне не особо нужен. Но формат JSON показался мне удобным для МОИХ целей (в отличии от неудобного в этой задаче XML). Вот только закавычивать каждое имя я морально не готов. В результате я написал парсер данных СВОЕГО формата. Заодно он парсит JSON (правда не валидирует его и парсит кучу того, что сам JSON и Вы с ним предаете анафеме). Мои задачи этот парсер решает. Возможно решит чьи-то еще. А если он Вам лично не нравится, так я ведь пользоваться им не заставляю.

Парсер актуален и работает в 22 году)

Sign up to leave a comment.

Articles