|
|
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Добрый день господа! Стоит задача у меня: перевести готовую базу из MS SQL Server в ORACLE. Я очень и очень плохо знаю ORACLE, не все получается. Есть несколько вопросов. Как я понимаю в Oracle нет функции ISNUMERIC. Написал собственную функцию. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Может есть попроще? Функция проверяет только целые числа, пока мне и этого достаточно. В MS SQL Server можно создать скалярную функцию (не знаю как называется в Oracle), которую можно использовать в Constraint, чтобы ставить ограничение при вводе данных. Можно ли и в Oracle использовать собственную функцию? Попробовал вот так по аналогию с MS SQL Server. Не получается. Код: plsql 1. 2. Спасибо заранее за подсказку / ссылку и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:12 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studieren, может стоит научиться пользоваться поиском? тогда и писать надо будет меньше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:14 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Vint, Искал. Не нашёл. Поэтому написал. Если знаете как в constraint использовать собственную функцию подскажите please. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:16 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:19 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studieren, звиздиш. ленивый нуб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:22 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Anatoly B, Спасибо за ссылку, но там нет то, что я ищу. Как в constraint использовать собственную функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:24 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studierenМожно ли и в Oracle использовать собственную функцию? В Oracle можно объявить поле типа NUMBER и оно автоматически будет ограничено только числами. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:25 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Vintstudieren, звиздиш. ленивый нуб. Ну и где же написано как можно применить собственную функцию в constraint? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:27 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovstudierenМожно ли и в Oracle использовать собственную функцию? В Oracle можно объявить поле типа NUMBER и оно автоматически будет ограничено только числами. К сожалению не могу. Там 9-значные цифры, первая цифра "0". Если объявить как число, то первый символ пропадёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:28 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
В check-констрейнте нельзя использовать самописные функции Но тебе достаточно TRANSLATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:31 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Почему бы просто не создать поле с типом NUMBER? translate в помощь по поводу цифр в строке. У Check constraint есть ограничения, например, нельзя использовать самописные функции. А вот засутить translate в сам констрэинт можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:34 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Забыл обновиться =\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:36 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studierenК сожалению не могу. Там 9-значные цифры, первая цифра "0". Если объявить как число, то первый символ пропадёт. Это всего лишь проблема форматирования при выводе. Но даже если держать это значение как строку, пользовательская функция не нужна пока есть regexp_like. Достаточно научиться писать регэкспы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:37 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровВ check-констрейнте нельзя использовать самописные функции Но тебе достаточно TRANSLATE Dimitry SibiryakovЭто всего лишь проблема форматирования при выводе. Но даже если держать это значение как строку, пользовательская функция не нужна пока есть regexp_like. Достаточно научиться писать регэкспы. Спасибо за наводку, не знал что нельзя. Сейчас попробую TRANSLATE или regexp_like. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:42 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studieren, (само)введение в заблкждение. лидирующий ноль означает, что данные у тебя не число, а строка, состоящая из цифр. и msный isnumeric не обеспечивает проверки, что строка из только цифр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 14:54 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studieren, Посмотрите эти продукты - Database Migration Guide (12с) - 2. SQL Developer: Migrating Third-Party Databases ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:26 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Пост "р/лтрим" сфокусировал правильно вопрос. Должно быть быстрее так (да и учитывает не только целые числа): Код: plsql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:36 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
MakeSure Код: plsql 1. К сожалению, это нестабильный код, поскольку зависит от окружения сессии. Конкретно - от NLS_NUMERIC_CHARACTERS Поправить - просто, примеров на форуме - мульон, особенно от нашего официального тирана Elic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:40 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Преобразователь Неявный, само собой по нлс параметры надо позаботиться. Я, в целом, о том, что транслэйт тут будет значительно медленней, чем to_number. К тому же to_number вызовет ошибку более читабельную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 15:46 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
UPD Еще учесть надо to_number('3E10') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 16:08 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
MakeSureUPD Еще учесть надо to_number('3E10') Учесть надо второй и третий параметр to_number, блин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 16:11 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:34 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
SY Код: plsql 1. 2. 3. 4. 5. 6. SY.плохо, что ошибка неявная и х.з. где возникает через год юзверь позвонит в полтретьего ночи - че за фигня? потом хрен вспомнишь, что это твой же констрейнт по его же ТЗ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2016, 17:49 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
Возник ещё 1 вопрос. Хотел установить ограничение на дату документа (запретить на ввод будущей даты). Запускаю скрипт, а ORCLE ругается: Код: plsql 1. 2. 3. Ругается так: Oracle Error: ORA-02436 Date or system variable wrongly specified in CHECK constraint А как надо было написать? Разве нельзя использовать SYSDATE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 10:35 |
|
||
|
Перевод из MS SQL Server в ORACLE
|
|||
|---|---|---|---|
|
#18+
studierenРазве нельзя использовать SYSDATE?RTFM Restrictions on Check Constraints (FAQ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2016, 10:38 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39209445&tid=1886761]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
177ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 290ms |
| total: | 608ms |

| 0 / 0 |
