|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
Добрый день Пытаюсь написать скрипт функции, возвращающий скалярное значение Есть код процедуры, который работает Код: sql 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.
Выполняя EXEC [dbo].[p_proc] 'eee@tgf.com' получаю верный ответ в табличном виде Как вывести в скалярном? Смотрю в сторону скалярной функции: Код: sql 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.
Первая ошибка: Код: plaintext 1.
Когда комментирую WITH RESULT SETS: Код: plaintext 1.
Подскажите, пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2021, 17:03 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
Глобально задача звучит так: "преобразовать строковое значение одного из полей в процедуре импорта" Предположил что удобней реализовать через скалярную функцию. Но преобразование написано на Python. Преобразование - изменение значение в зависимости от токена. Передали готовый код преобразования на питоне ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2021, 18:16 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
jango77 Код: plaintext 1.
Чего тут непонятного? Скалярные функции MS SQL имеют ограничения. Ограничения перечислены в документации. Вам не светит вызвать внешний скрипт в скалярке. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 07:34 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
aleks222, ну почему не светит? В CLR-ку завернуть. Можно даже универсальный запускач сделать :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 08:48 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
uaggster aleks222, ну почему не светит? В CLR-ку завернуть. Можно даже универсальный запускач сделать :-) Можно и сервером гвозди заколачивать. Но лучше - молотком. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 08:52 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
Подскажите пожалуйста по поводу CLR, какой объект в нее завернуть, и что вызывать через нее? Тогда может имеет смысл преобразование написать на C#, без питона? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 10:47 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
jango77 Тогда может имеет смысл преобразование написать на C#, без питона? Может статься, что вообще проще и эффективнее будет делать средствами T-SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 11:20 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
invm, это код дешифровщика. Используется токен. Вероятно что есть способ сделать на SQL, но сам так не напишу, скинуть по понятным причинам не могу. CLR когда-то писал, если этот вариант будет рабочим, может так и сделаю. Попрошу помощи в архитектуре, какую логику закинуть в CLR, что должно быть размещено в ней, и вызывать как скалярную функцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 11:45 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
jango77, авторВыполняя EXEC [dbo].[p_proc] 'eee@tgf.com' получаю верный ответ в табличном виде Как вывести в скалярном? Используйте output параметр в процедуре. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 12:37 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
Владислав Колосов jango77, авторВыполняя EXEC [dbo].[p_proc] 'eee@tgf.com' получаю верный ответ в табличном виде Как вывести в скалярном? Используйте output параметр в процедуре. Нужно добавить output параметр? Код: sql 1. 2. 3. 4. 5.
Как сделать RETURN в @EMAIL_DECODED из EXEC sp_execute_external_script ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 12:55 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
jango77 Как сделать RETURN в @EMAIL_DECODED из EXEC sp_execute_external_script ? 1. Ну... так же как ты это пытался сделать в скалярке. 2. sp_execute_external_script ... @params = N'@parameter_name data_type [ OUT | OUTPUT ] [ ,...n ]' ] [ , @parameter1 = 'value1' [ OUT | OUTPUT ] [ ,...n ] ] так попроще. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 13:05 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
В таком виде? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Вызываю Код: sql 1. 2. 3. 4.
Ошибка Код: plaintext 1.
Но более глобальный вопрос, как мне интегрировать процедуру, а не функцию, в процесс импорта Код: sql 1. 2. 3. 4. 5.
Предполагал так: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 14:55 |
|
Выполнение Python-скрипта в скалярной функции
|
|||
---|---|---|---|
#18+
jango77, Вы же не методом интуиции пользуйтесь, а методом чтения документации. Оно всегда срабатывает. Кто же знает, какой у Вас процесс импорта? Если под "импортом" имеется в виду задача вставки в таблицу данные, которые возвращает процедура, то Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 15:15 |
|
|
start [/forum/topic.php?fid=46&msg=40086195&tid=1684471]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 132ms |
0 / 0 |