Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 66 67 68 69 70 [71] 72 73 74 75 .. 92   вперед  Ctrl
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
dbms_photoshop
andreymx
просто пошли по накатанному пути
в предыдущей строке указанным алгоритмом вычисляли дату от pl_months и pl_year
Даже если и так, то decode и незнание маски mmyyyy я бы забраковал.
я тоже забраковал
)
19 июл 12, 14:03    [12888345]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
Антохин
Member

Откуда:
Сообщений: 1684
Сижу пью на работе чай, и вот взгляд упал на упаковочку, оказывается вот какой у чая интересный сорт))) Видимо программистский!

К сообщению приложен файл. Размер - 18Kb
24 июл 12, 17:12    [12909860]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
mayton
Member

Откуда: loopback
Сообщений: 49739
Хард блинчик. Вот так вот.
Картинка с другого сайта.

А кто юзал сабж на работе?
7 авг 12, 10:46    [12973181]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
mayton
Хард блинчик. Вот так вот.
А кто юзал сабж на работе?
В 1956 году я еще не родился
А до времен, когда я приступил к работе на ЭВМ эти диски не дожили
7 авг 12, 10:54    [12973249]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
Храните деньги в сберегательной
Guest
Тут народ "копья ломал" Оракле оказывается виноват, а все оказывается намного проще:
Кредитная организация Германа Грефа в своем официальном микроблоге опубликовала следующее сообщение:
"Народный лайфхак: Если на стене мелом написать "Сбербанк", у стены образуется очередь из 30 пенсионерок. Кто пробовал? Работает?".
10 авг 12, 11:10    [12992346]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
sql_coder
Member

Откуда:
Сообщений: 234
Раньше работал в организации - банке, работа была напряженная. Иногда бывало, когда кто-то вечером звонит на стационарный телефон, поднимая трубку говорил: "Банк... Добрый день!"
10 авг 12, 18:02    [12995715]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
Храните деньги в сберегательной
Тут народ "копья ломал" Оракле оказывается виноват, а все оказывается намного проще:
Кредитная организация Германа Грефа в своем официальном микроблоге опубликовала следующее сообщение:
"Народный лайфхак: Если на стене мелом написать "Сбербанк", у стены образуется очередь из 30 пенсионерок. Кто пробовал? Работает?".

еще как работает
Сбербанк уволил сотрудника за шутку о пенсионерах в твиттере
однако, народ ржать не перестает. вот, например, крупно адрес этой самой ссылки ссылки
http://lenta.ru/news/2012/08/10/lolbank/
10 авг 12, 18:10    [12995773]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
как лучше?

where nvl(param, 0) = 0
или
where nullif(param, 0) is null


?
17 авг 12, 13:25    [13026308]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
MacDuck
Member

Откуда: Москва-Подольск
Сообщений: 6387
Не скажу какая нота металинка предлагает такой способ кастомизированного сбора потабличной статистики, внимание на выделенное тегом [b]:

create or replace procedure getstattest IS
str1 varchar2(1000);
cnt NUMBER;
CURSOR c_C1 IS select TABLE_NAME, OWNER from dba_tables where OWNER IN ('SCOTT') and TABLE_NAME IN ('EMP', 'DEPT','BONUS','SALGRADE');
begin
FOR tab_rec IN c_C1
LOOP
cnt:=0;
dbms_output.put_line('Checking OWNER: '||tab_rec.OWNER);
dbms_output.put_line('Checking TAB: '||tab_rec.TABLE_NAME);
[b]execute immediate 'SELECT COUNT (*) FROM '|| tab_rec.TABLE_NAME INTO cnt;
if cnt > 2 then
str1:='BEGIN dbms_stats.gather_table_stats[/b](ownname =>'''||tab_rec.OWNER||''',tabname =>'''||tab_rec.TABLE_NAME||''',cascade => true,degree=>
0); END;';
dbms_output.put_line(str1);
execute immediate str1;
end if;
cnt:=0;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
       DBMS_OUTPUT.put_line('An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM||' '||str1);
END;
/
21 авг 12, 15:35    [13043975]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
MacDuck
EXCEPTION
WHEN OTHERS THEN
       DBMS_OUTPUT.put_line('An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM||' '||str1);
END;
/
рейз чем им помешал?
вываливать ошибку в DBMS_OUTPUT без каких-либо других сообщений юзверю не намного лучше, чем тот же WHEN OTHERS THEN Null
21 авг 12, 16:22    [13044456]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
и нахрена эти cnt := 0; натыканы
21 авг 12, 16:26    [13044500]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
N.Ivankin
Member

Откуда: Извините, но всё-таки СПб
Сообщений: 969
andreymx
и нахрена эти cnt := 0; натыканы


это то понятно, в cnt пишется count(*), сравнивается на предмет >2 , потом сбрасывается.
21 авг 12, 16:32    [13044558]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
comphead
Member

Откуда: Киев
Сообщений: 3390
andreymx
и нахрена эти cnt := 0; натыканы


да и owner которого захардкодили, накуа динамика, в общем оракл троллит нас. )
21 авг 12, 16:37    [13044591]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
N.Ivankin
andreymx
и нахрена эти cnt := 0; натыканы


это то понятно, в cnt пишется count(*), сравнивается на предмет >2 , потом сбрасывается.
а занакуя?
21 авг 12, 16:37    [13044593]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
N.Ivankin
Member

Откуда: Извините, но всё-таки СПб
Сообщений: 969
andreymx
N.Ivankin
пропущено...


это то понятно, в cnt пишется count(*), сравнивается на предмет >2 , потом сбрасывается.
а занакуя?


очевидно оракле считает, что таблицы с одной записью не достойны процедуры сбора статы :-)
21 авг 12, 16:38    [13044611]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
comphead
andreymx
и нахрена эти cnt := 0; натыканы


да и owner которого захардкодили, накуа динамика, в общем оракл троллит нас. )
блин... к концу дня голова никуя не работает. самого главного и не приметил
)
21 авг 12, 16:39    [13044613]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
да и в
execute immediate 'SELECT COUNT (*) FROM '|| tab_rec.TABLE_NAME INTO cnt;
лучше бы добавить
where rownum <=2
21 авг 12, 16:41    [13044629]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
N.Ivankin
andreymx
пропущено...
а занакуя?


очевидно оракле считает, что таблицы с одной записью не достойны процедуры сбора статы :-)
это-то я понял
ты объясни, нафига переменные сбрасывать
21 авг 12, 16:42    [13044639]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
а лучше эту проверку вообще нах убрать :)
потому как что может быть проще сбора статистики по пустой таблице
21 авг 12, 16:45    [13044661]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
N.Ivankin
Member

Откуда: Извините, но всё-таки СПб
Сообщений: 969
andreymx
N.Ivankin
пропущено...


очевидно оракле считает, что таблицы с одной записью не достойны процедуры сбора статы :-)
это-то я понял
ты объясни, нафига переменные сбрасывать


Хе, шоп мохом не поросло, а то мох он на лайбрери кеш перекинется и как начнёт база тупить.
А тут глядишь и олешки северные заведутся на мху-то. Ягель оно ить нажористый.
Нажористость ягелевая долго позволяет олешке в сга тусить. ;-)
21 авг 12, 16:48    [13044689]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 54381
Всегда удивляло, как люди умудряются так писать
p_year := to_char(p_date, 'rrrr');
p_month := to_char(p_date, 'mm');
Select * from ...
 Where num_date = p_year*100+p_month
21 авг 12, 19:19    [13045515]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
DВА
Member

Откуда:
Сообщений: 5439
MacDuck
execute immediate 'SELECT COUNT (*) FROM '|| tab_rec.TABLE_NAME INTO cnt


хи-хи
видимо о наличии rownum автор сего творения не знает )))
22 авг 12, 14:54    [13049652]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
MacDuck
Member

Откуда: Москва-Подольск
Сообщений: 6387
DВА
хи-хи
видимо о наличии rownum автор сего творения не знает )))


Это да.
Сомнителен и сам признак "больше двух строк в таблице".

Не проще ли тупо считать статистику по всем без условия, чем делать select count (*) + потом скорее всего считать статистику.
На нормальной базе сами count (*) сожрут кучу времени и ресурсов.
22 авг 12, 17:28    [13050945]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
Edward Shevtsov
Member

Откуда: Moscow
Сообщений: 13469
N.Ivankin
andreymx
пропущено...
это-то я понял
ты объясни, нафига переменные сбрасывать


Хе, шоп мохом не поросло, а то мох он на лайбрери кеш перекинется и как начнёт база тупить.
А тут глядишь и олешки северные заведутся на мху-то. Ягель оно ить нажористый.
Нажористость ягелевая долго позволяет олешке в сга тусить. ;-)
я тоже хочу такой мох попробовать!
22 авг 12, 17:36    [13051006]     Ответить | Цитировать Сообщить модератору
 Re: Извините за офтоп. Просто посмеяться  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
for j in 1..3 loop
			case j
				when 1 then
					t_cur := func_name1(p_process, pv_date, p_shift, p_model_loader, vcolorscheme);
				when 2 then
					t_cur := func_name2(p_process, pv_date, p_shift, p_model_loader, vcolorscheme);
				when 3 then
					t_cur := func_name3(p_process, pv_date, p_shift, p_model_loader, vcolorscheme);
			end case;
			loop
				fetch t_cur into r_cycl;
				exit when t_cur%notfound;
				if (r_cycl.start_intv < 0) then
					r_cycl.start_intv := 0;
				end if;
				pipe row(r_cycl);
			end loop;
			close t_cur;
		end loop;
27 авг 12, 16:01    [13070752]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 66 67 68 69 70 [71] 72 73 74 75 .. 92   вперед  Ctrl
Все форумы / Oracle Ответить