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

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

Есть ли аналог такой функции в PL/SQL ?
Спасибо.
...
Рейтинг: 0 / 0
10.03.2005, 11:37
    #32952878
Coaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Если я правильно понял - отлаживаешься?
Тогда dbms_output.put_line тебе поможет
...
Рейтинг: 0 / 0
10.03.2005, 11:44
    #32952893
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Код: 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
10.03.2005, 11:48
    #32952906
Angel13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Нет, мне нужно писать сложные Execute Immediate.
Просто если писать через конкатинации, то строка получаеться очень громоздкой и почти не читабельной.
...
Рейтинг: 0 / 0
10.03.2005, 11:55
    #32952938
Angel13
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
2 Elic
Ух ты! именно то что нужно :) Дашь поюзать?
...
Рейтинг: 0 / 0
10.03.2005, 12:10
    #32952989
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Angel13Дашь поюзать?Да пользуйтесь все на здоровье :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
20.03.2017, 22:01
    #39423633
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
при открытии файла русские буквы не читаются
...
Рейтинг: 0 / 0
20.03.2017, 23:06
    #39423651
кир или ца
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Бакытпри открытии файла русские буквы не читаютсяС чего ты решил, что они русские. Может белорусские.
...
Рейтинг: 0 / 0
21.03.2017, 00:08
    #39423668
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
На Windows 7 в Notepad замечательно читаются.
...
Рейтинг: 0 / 0
21.03.2017, 02:18
    #39423679
Бакыт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
Leonid KudryavtsevНа Windows 7 в Notepad замечательно читаются.

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

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

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

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

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

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

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

Да, если захочется указывать ширину подстановки или выравнивание, то со встроенной функцией понадобятся дополнительные телодвижения.
А если захочется использовать в SQL, то это вообще невозможно ибо vararg.
Но все определяет специфика, и думаю в 9 из 10 случаев гибкости и простоты встроенного решения достаточно для применения в PL/SQL.
...
Рейтинг: 0 / 0
21.03.2017, 09:43
    #39423773
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог printf в PL/SQL
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
Форумы / Oracle [игнор отключен] [закрыт для гостей] / аналог printf в PL/SQL / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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