Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243

Перевод скрипта с PL/SQL на PL/pgSQL

23.05.2022, 14:55. Показов 711. Ответов 10

Студворк — интернет-сервис помощи студентам
Добрый день.

Стоит задача переделать скрипты, написанные под Oracle, для СУБД PostgreSQL 13.
Проблемы начались с самого начала: я с трудом понимаю pl/sql, а Postgres умею только ставить.
Собственно, у меня сразу возникло несколько вопросов:
1. Встречалось ли вам подробное руководство по переводу с одного диалекта на другой?
2. В скрипте всё начинается с создания ролей и пользователей.
Oracle 11 SQL
1
2
CREATE ROLE admin IDENTIFIED BY "4134B6366667BCBDC";
CREATE USER dbo IDENTIFIED BY dbo DEFAULT TABLESPACE &&1 TEMPORARY TABLESPACE &&2 quota unlimited ON &&1;
В первой строке, я так понимаю, пароль от роли задаётся в виде хэша сразу. И команда
SQL
1
CREATE ROLE admin PASSWORD '4134B6366667BCBDC';
никак не является аналогом в постгре. А по второй строке я вообще не смог найти создание пользователя с указанием ему табличных пространств. Или это в принципе не нужно?

И да, я понимаю, что правильный ответ на оба вопроса: "Сходи поучись пару годиков на программиста БД. Сперва одной, потом другой." Но увы, задача уже поставлена и дедлайн всё ближе.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.05.2022, 14:55
Ответы с готовыми решениями:

Перевод скрипта из SQL в Model на mvc5
Уважаемые... У меня есть скрипт который создает БД и в ней 2 таблицы Account и Role Таблицы взаимосвязаны. Скрипт прикрепил. А...

Перевод скрипта
Помогите пожалуйста, разобраться в скрипте. Нужно написать на с++ функцию, которая выдаёт такой же результат как эта. С паскалем плохо...

Перевод скрипта с C в C#
Прошу помощи #include <stdio.h> int main(void) { int g,i; double s=0; scanf("%d",&g); for(i=2;i<=g;i++) ...

10
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
24.05.2022, 07:30
ORA2PG
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
24.05.2022, 11:19  [ТС]
fte65, да, я думал об использовании подобных инструментов. Но мне надо перевести скрипты, а не импортировать схему. Увы.
0
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
24.05.2022, 11:48
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
В первой строке, я так понимаю, пароль от роли задаётся в виде хэша сразу.
SQL
1
2
3
CREATE ROLE admin IDENTIFIED BY "4134B6366667BCBDC";
-- меняем на
CREATE ROLE admin ENCRYPTED PASSWORD '4134B6366667BCBDC';
Хотя тут сразу возникает вопрос, в postgresql hash - это md5 от rolename+password, а как в oracle незнаю...

Цитата Сообщение от Alli_Lupin Посмотреть сообщение
А по второй строке я вообще не смог найти создание пользователя с указанием ему табличных пространств. Или это в принципе не нужно?
ИМХО: не нужно
1
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
24.05.2022, 11:51  [ТС]
Цитата Сообщение от fte65 Посмотреть сообщение
ИМХО: не нужно
Т.Е. в PostgreSQL нельзя конкретную схему (пользуясь терминологию Оракла), привязать к конкретному табличному пространству?
0
106 / 67 / 29
Регистрация: 22.04.2022
Сообщений: 232
24.05.2022, 11:56
Нельзя, привязываются таблицы, индексы и базы данных
1
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
25.05.2022, 14:56
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
я так понимаю, пароль от роли задаётся в виде хэша сразу
Нет. Что у пользователя, что у роли после IDENTIFIED BY пароль задается явно, т.е. так, как его надо вводить (это я про Oracle, если что, с Postgre никогда не работал)

Цитата Сообщение от Alli_Lupin Посмотреть сообщение
quota unlimited ON &&1
Не помню, является ли это допустимым синтаксисом. Вообще umlimiter tablespaces является системной привилегией и выдается командой GRANT. Кроме того, пользователь с такими правами вообще не сможет соединиться с БД. Как минимум, нужна привилегия CREATE SESSION, или, что чаще используется, GRANT connect, resource ...
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
25.05.2022, 15:05  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
что у роли после IDENTIFIED BY пароль задается явно
Меня в смущение приводит, что identified by для пользователя не требует кавычек для пароля (вторая строка в скрипте в начале темы).
Цитата Сообщение от Grossmeister Посмотреть сообщение
Кроме того, пользователь с такими правами вообще не сможет соединиться с БД. Как минимум, нужна привилегия CREATE SESSION, или, что чаще используется, GRANT connect, resource ...
Гранты выдаются позже. Там присутствует следующие строки:
Oracle 11 SQL
1
2
3
4
5
GRANT CREATE SESSION,ALTER SESSION TO admin WITH admin OPTION;
GRANT CREATE USER TO admin WITH admin OPTION;
GRANT DROP USER TO admin WITH admin OPTION;
GRANT ALTER USER TO admin WITH admin OPTION;
GRANT admin TO dbo WITH admin OPTION;
Цитата Сообщение от Grossmeister Посмотреть сообщение
Не помню, является ли это допустимым синтаксисом.
скрипт проливается в базу Оракла без ошибок.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
25.05.2022, 15:27
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
GRANT admin
Это роль нестандартная (видимо самописная), поэтому по этому поводу ничего сказать не могу

Цитата Сообщение от Alli_Lupin Посмотреть сообщение
не требует кавычек для пароля
Тут ничего сказать не могу, возможно зависит от версии Oracle. Но то, что я после неоднократного создания пользователя входил под паролем, который указан после IDENTIFIED BY - это стопудово

Цитата Сообщение от Alli_Lupin Посмотреть сообщение
скрипт проливается в базу Оракла без ошибок
Возможно тоже зависит от версии. Но это всегда можно заменить на
SQL
1
GRANT UNLIMITED TABLESPACE TO user1
Плюс такой грант всегда входил вроде как в роль RESOURCE (хоты м.б. его в последних версиях оттуда выкинули, давно собирались)
0
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,243
25.05.2022, 15:30  [ТС]
Цитата Сообщение от Grossmeister Посмотреть сообщение
от версии Oracle
скрипт для версии 19с
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
25.05.2022, 15:33
Цитата Сообщение от Alli_Lupin Посмотреть сообщение
скрипт для версии 19с
Сейчас нету под рукой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.05.2022, 15:33
Помогаю со студенческими работами здесь

Перевод скрипта из С в Matlab
Добрый день. Появилась необходимость перевести код из С в Matlab. Видела довольно много информации по переводу скриптов из matlab в С, но...

Перевод скрипта на С# с Bash (не уверен)
Всем привет! Работаю с API яндекс переводчика и не могу отправить запрос. Выдает следующую ошибку "Yandex say: : invalid value...

Перевод скрипта с Mootools на jQuery
Здравствуйте! Есть скрипт, написанный для использования с библиотекой Mootools. Нужно переписать его так, чтобы он работал с библиотекой...

Перевод скрипта linux на windows
Нужен батник под винду. Чтобы выполнял то что выполняет прикрепленный файл ниже. openscad $1 -D generate=1 -o $1.csg 2>&1...

Перевод скрипта с Bash на Batch
Доброго времени суток, подскажите, возможно ли переделать следующий скрипт под бат файл? Заранее огромнейшие спасибо. #! /bin/bash ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru