powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / аналог printf в PL/SQL
15 сообщений из 15, страница 1 из 1
аналог printf в PL/SQL
    #32952866
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет.
Помниться в великом и могучем С++ была замечательная функция вывода строки по формату printf(). Для тех кто не знает, работала она примерно так:

char[10] MyStr = "My"
int MyInt = 5
...
printf("Hello %s World %d", MyStr, MyInt);
получаеться:
'Hello My World 5'

Есть ли аналог такой функции в PL/SQL ?
Спасибо.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #32952878
Фотография Coaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял - отлаживаешься?
Тогда dbms_output.put_line тебе поможет
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #32952893
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
------------------------------------------------------------------------------------------
-- Format - форматирование строки (аналогично printf в C или Format в Delphi)
--   Допустимый формат:  "%" ["-"] [width] ["." prec] type
--   где "%" - начало спецификации формата;
--       "-" - выравнивание влево;
--       width - минимальная ширина значения;
--       prec - точность значения (см. type);
--       type - тип значения. Возможные значения:
--              s - строка (prec означает максимальную длину строки);
--              d - целое число (prec означает минимальное количество десятичных цифр)
--              x - целое число в шестнадцатиричном виде
--                    (prec означает минимальное количество шестнадцатиричных цифр)
---
-- Пример:
--   Util.Format('Абонент %-10.8d: Ошибка 0x%x "%s"', 5999001, 132, 'Unknown MTI')
--     => 'Абонент 05999001  : Ошибка 0x84 "Unknown MTI"'
---------
function Format(FormatStr varchar2, S1 varchar2,
  S2 varchar2 := '', S3 varchar2 := '', S4 varchar2 := '',
  S5 varchar2 := '', S6 varchar2 := '', S7 varchar2 := '',
  S8 varchar2 := '', S9 varchar2 := '', S10 varchar2 := ''
) return varchar2;
  pragma restrict_references(Format, wnds, rnds, wnps, rnps);
Интересует?
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #32952906
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, мне нужно писать сложные Execute Immediate.
Просто если писать через конкатинации, то строка получаеться очень громоздкой и почти не читабельной.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #32952938
Angel13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Elic
Ух ты! именно то что нужно :) Дашь поюзать?
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #32952989
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Angel13Дашь поюзать?Да пользуйтесь все на здоровье :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
аналог printf в PL/SQL
    #39423633
Бакыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при открытии файла русские буквы не читаются
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423651
кир или ца
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бакытпри открытии файла русские буквы не читаютсяС чего ты решил, что они русские. Может белорусские.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423668
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На Windows 7 в Notepad замечательно читаются.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423679
Бакыт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНа Windows 7 в Notepad замечательно читаются.

у меня тоже Windows 7 именно кирилица крякозябра

можете на ворд например скопировать и скинуть

что то у меня с кодировкой значит
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423692
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БакытLeonid KudryavtsevНа Windows 7 в Notepad замечательно читаются.

у меня тоже Windows 7 именно кирилица крякозябра

можете на ворд например скопировать и скинуть

что то у меня с кодировкой значитЗачем через жопу решать последствия если можно решить причину?
Гугли "language for non unicode programs".

Тебе в твоем же топике уже давали встроенное решение - Возможно ли реализация такой функции .
Уже не 2005 год на дворе...
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423696
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помниться в великом и могучем С++ была замечательная функция вывода строки по формату printf()
Вообще-то это функция C,в С++ по логике cout аналог этой функции
Хотя ТС наверное уже пофиг
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423701
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopТебе в твоем же топике уже давали встроенное решение - Возможно ли реализация такой функции .
Уже не 2005 год на дворе...И что? Даже тогдашний Format возможностями покрывает "встроенное решение" как бык овцу.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423752
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Да, если захочется указывать ширину подстановки или выравнивание, то со встроенной функцией понадобятся дополнительные телодвижения.
А если захочется использовать в SQL, то это вообще невозможно ибо vararg.
Но все определяет специфика, и думаю в 9 из 10 случаев гибкости и простоты встроенного решения достаточно для применения в PL/SQL.
...
Рейтинг: 0 / 0
аналог printf в PL/SQL
    #39423773
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopНо все определяет специфика, и думаю в 9 из 10 случаев гибкости и простоты встроенного решения достаточно для применения в PL/SQL.Да, в 99% используются %s/%d.
Но есть и изюминки:
Код: plsql
1.
2.
3.
UTIL.FORMAT('%D)%.2I',1,INTERVAL'1000'SECOND/3)
-----------------------------------------------
1) 5:33.33

Код: plsql
1.
2.
--                i - interval (day to second) без незначащих лидирующих нулей
--                      (prec означает количество цифр после запятой)

...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / аналог printf в PL/SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]