Wypowiedzi

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Zapytanie w osql - czy można dodać warunek?
    29.07.2011, 09:32

    Wojciech Gardziński:
    Wojciech T.:
    Wojciech Gardziński:
    Ależ poważny problem! ;)

    http://www.goldenline.pl/forum/1667616/konsolidacja-da...
    (Oczywiście "baza internetowa" to dowolna baza danych, również excelki, SQLSy, a nawet CSVki)

    Dziękuję, spam zgłoszony.
    Psze bardzo. Polecam się na przyszłość.
    Niczego innego po "Senior Oracle DBA & Developer" się nie spodziewałem (a już na pewno nie rozwiązania problemu).
    :) Jak się wkleja swój wątek gdzie popadnie, to niczego innego nie można się spodziewać. Temat, widzę, ma Pan założony, więc są dwie drogi. Albo czekać na rozwiązanie, albo zapłacić ludziom pieniądze i mieć problem rozwiązany. Spam nie jest najszczęśliwszym wyjściem, a tym bardziej obrażanie ludzi.
    Mimo wszystko pozdrawiam.

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Zapytanie w osql - czy można dodać warunek?
    28.07.2011, 12:49

    Wojciech Gardziński:
    Ależ poważny problem! ;)

    http://www.goldenline.pl/forum/1667616/konsolidacja-da...
    (Oczywiście "baza internetowa" to dowolna baza danych, również excelki, SQLSy, a nawet CSVki)

    Dziękuję, spam zgłoszony.

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Oracle - create table <nazwa> of <nazwa typu...
    25.07.2011, 11:15

    Tego szukałem. Dzięki. Temat zamknięty.

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Oracle - create table <nazwa> of <nazwa typu...
    22.07.2011, 09:53

    Wojciech T.:
    Jeśli dam od razu
    alter type nazwa_typu
    add attribute col4 number invalidate;
    wówczas mam wszystko pięknie. Typ dziedziczy, tabela również. Ale może istnieje jakiś magiczny alter table?


    Errata, miało być:
    Jeśli dam od razu
    alter type nazwa_typu
    add attribute col4 number cascade;

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Oracle - create table <nazwa> of <nazwa typu...
    21.07.2011, 15:11

    create type nazwa_typu as object (
    col1 number,
    col2 number);

    create type nazwa_typu2 under nazwa_typu
    (col3 number);

    create table nazwa_tablicy of nazwa_typu2;

    Do tego miejsca wszystko gra. Jednak teraz:

    alter type nazwa_typu
    add attribute col4 number invalidate;

    Rozkompilowuje typ nazwa_typu2, wiadomo. Jednak po przekompilowaniu typ jest poprawny, tzn. widać odziedziczona kolumne, jednak w tablicy nie widać. Wiem, że powinienem użyć opcji cascade podczas alter type, jednak załóżmy, że się pomyliłem i nie użyłem. Jak "odświeżyć" definicję tablicy, jak sprawić, żeby "zobaczyła" ten poprawny, rozszerzony typ?

    Jeśli dam od razu
    alter type nazwa_typu
    add attribute col4 number invalidate;
    wówczas mam wszystko pięknie. Typ dziedziczy, tabela również. Ale może istnieje jakiś magiczny alter table?Wojciech T. edytował(a) ten post dnia 21.07.11 o godzinie 15:12

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie magazyn SecurityMag poszukuje autora do wrześniowego...
    12.07.2011, 12:04

    A może "Bezpieczeństwo baz danych bez danych"?

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie [PL/SQL] SELECT prawie wszystkich kolumn
    26.05.2011, 13:53

    Tomasz Drzazga:
    Wymyśliłem trochę inny sposób. Skopiowałem wszystkie nazwy kolumn ze struktury tabeli i wkleiłem i jest prościej.

    Zrobiłem insert i działa

    INSERT INTO TABELA1
    select ap_dobi_sq.NEXTVAL, a,b,c,d from TABELA2 where id=4));
    http://www.youtube.com/watch?v=6jMiXcJ-rvE

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie TIMESTAMP, Oracle select z between
    17.05.2011, 14:12

    Mnóstwo masek i super wyjaśnienia:
    http://www.techonthenet.com/oracle/functions/to_char.php
    http://www.techonthenet.com/oracle/functions/to_timest...

    To Ci wystarczy, żebyś mógł operować na timestampie tak jak Ci się to tylko podoba.Wojciech T. edytował(a) ten post dnia 17.05.11 o godzinie 14:12

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie ORACLE: LONG na VARCHAR2 bez utraty danych
    11.05.2011, 16:33

    Ireneusz Ptak:
    Wojciech T.:
    sprawdzałem, puszczałem - działa.

    Ciekawe - jaka wersja Oracle?
    U mnie ten skrypt sie wywala - dziala dopiero po zmianie tego kursora w petli.

    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production

    A co dokładnie się wywala? Z ciekawości :)

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie ORACLE: LONG na VARCHAR2 bez utraty danych
    10.05.2011, 13:35

    Fragment:
    execute immediate
    'update nazwa_tab set DWARUNEK3= substr(a.DWARUNEK,1,4000)
    where sid=a.sid';

    generuje błąd. Należy wcześniej przypisać tego substring'a do zmiennej, a potem tą zmienną robić update i po błędzie :)

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie ORACLE: LONG na VARCHAR2 bez utraty danych
    10.05.2011, 13:17

    declare
    lv_col varchar2(4000);
    begin
    execute immediate 'alter table nazwa_tab add(DWARUNEK3
    varchar2(4000))';
    for rec in (select * from nazwa_tab) loop
    lv_col := substr(rec.DWARUNEK, 1, 4000);
    execute immediate 'update nazwa_tab set DWARUNEK3 = :1 where sid = :2' using lv_col, rec.sid;
    commit;
    end loop;
    execute immediate 'alter table nazwa_tab drop column DWARUNEK';
    execute immediate 'ALTER TABLE nazwa_tab RENAME COLUMN DWARUNEK3 to DWARUNEK';
    end;

    sprawdzałem, puszczałem - działa. Do poprawy:
    1) Wydajność
    2) ogólna konstrukcja tego szkicu (żeby wyglądał ;] )Wojciech T. edytował(a) ten post dnia 10.05.11 o godzinie 13:33

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Trigger-
    18.04.2011, 12:29

    Zrób inaczej. Dobrze byłoby, gdybyś miał jakąś tabelę z parametrami.
    1) Stwórz tam sobie parametr o nazwie free_id_twoja_tablica o wartości min(id) z tabeli docelowej.
    2) W tablicy docelowej zakładasz trigger after insert/delete, który po wstawieniu/usunięciu wiersza sprawdza min(id) z tabeli docelowej i robi update ww. parametru.
    3) Na triggerze na insert dajesz jako id wartość parametru.

    Powinno działać, nie sprawdzałem, to tylko mój pomysł na szybko.

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie Synchronizacja baz danych.
    10.03.2011, 10:38

    A moje zdanie jest takie, że nie potrzebujesz softu do synchronizacji tylko bata na developerów modyfikujących bazę bezpośrednio na produkcji.Wojciech T. edytował(a) ten post dnia 10.03.11 o godzinie 10:48

  • Wojciech Trzciałkowski
    Wpis na grupie Filmy grozy w temacie Black Swan (2010)

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Filmy grozy

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie [pl/sql] bulk collect into odwrotnie :)
    15.02.2011, 15:03

    select substr(:text,
            decode (rownum, 1, 1, instr(:text, ',', 1, (rownum - 1)) + 1),
            decode (instr(:text, ',', 1, (rownum)), 0, length(:text) + 1, instr(:text, ',', 1, (rownum)))
            - decode (rownum, 1, 1, instr(:text, ',', 1, (rownum - 1)) + 1)
           ) col1
     from dual
    connect by rownum <= length(:text) - length(replace(:text, ',', null)) + 1

    Zakładając, że znakiem rozdzielającym wartości jest przecinek (co chyba nie jest problemem).Wojciech T. edytował(a) ten post dnia 15.02.11 o godzinie 15:12

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie [SQL] Zapytanie TSQL z wykorzystaniem...
    2.12.2010, 13:13

    SET @query='select pole,kolumna'+rtrim(cast(@i as char))+ 'from table where record='''+@record+''''

    Powinno pomóc, przynajmniej tak się w oraclu to przekazuje.Wojciech T. edytował(a) ten post dnia 02.12.10 o godzinie 13:23

  • Wojciech Trzciałkowski
    Wpis na grupie Filmy grozy w temacie Season of the Witch (2010)

    Aby mieć możliwość przeczytania tego posta musisz być członkiem grupy Filmy grozy

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie MS SQL Server
    5.11.2010, 16:06

    Katarzyna Jankowska:
    W imieniu firmy FT Training & Software zapraszam serdecznie na szkolenie w dniach 18-19.11.2010 r. w godz. 9.00 - 17.00 do Warszawy na ul. Bartycka 116.

    Wiecej informacji o cenie i programie szkolenia znajdziecie na: http://ftts.pl

    Miło będzie Was poznać :)

    "Troszkę" mi to spamem zalatuje :)

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie historia zmian
    5.11.2010, 14:38

    Jarek Tkaczyk:
    Wojciech T.:
    Z wymagań Jarka Tkaczyka to nie wynika, a jest wręcz przeciwnie:
    [...]
    Głównym celem tej tabeli jest wyświetlanie użytkownikowi historii zmian, więc śmiem twierdzić, że tabela będzie dość często odpytywana. Chyba, że nie mam racji i zapytania będą sporadyczne. Wtedy zgoda. Można się pokusić o trzymanie wszystkiego "w jednym worku", lecz w przypadku gdy np. 10 użytkowników naraz zacznie sobie śledzić zmiany na rekordach, to może zrobić się dość nieciekawie :)

    Z moich wymagań zawartych w krótkim zdaniu można różne wnioski wyciągać, więc już piszę konkretniej.
    Otóż w rzeczy samej chodzi o małą bazę, stosunkowo niewiele rekordów i sporadyczne przeglądanie historii, przy czym użytkowników jednocześnie odpytujących bazę może być w porywach 2-3.
    Zatem główną kwestią, jak chciałem poruszyć, to wygoda pracy na archiwum, wydajność tutaj nie stanowi problemu.

    No to chyba wygrywa armata :)

  • Wojciech Trzciałkowski
    Wpis na grupie Bazy Danych w temacie historia zmian
    5.11.2010, 08:25

    Maciej Niedźwiecki:
    Wojciech T.:
    Dawid Rokita:

    Moja armata to rozwiązanie z jednego z moich systemów gdzie jest >300 tabel. Nie wyobrażam sobie robienia do każdej z nich klona z archiwum :-)
    Przechowywanie archiwum >300 tabel w jednej?

    To jest prosta tabela, która potencjalnie może mieć bardzo dużo rekordów, ale będzie mocniej wykorzystywana raczej dość rzadko.
    A zawsze można ją co jakiś czas zbackupować i założyć od nowa, np. raz w roku.
    Z wymagań Jarka Tkaczyka to nie wynika, a jest wręcz przeciwnie:
    "W jaki sposób najlepiej wykonać funkcjonalność historii zmian w bazie, przy czym głównym celem jest wyświetlenie użytkownikowi kolejnych wersji, a nie logi poszczególnych zmian?
    Tak by można było porównać kolejne wersje i uwidocznić zmienione dane (parami wersja X i wersja X+1)."

    Głównym celem tej tabeli jest wyświetlanie użytkownikowi historii zmian, więc śmiem twierdzić, że tabela będzie dość często odpytywana. Chyba, że nie mam racji i zapytania będą sporadyczne. Wtedy zgoda. Można się pokusić o trzymanie wszystkiego "w jednym worku", lecz w przypadku gdy np. 10 użytkowników naraz zacznie sobie śledzić zmiany na rekordach, to może zrobić się dość nieciekawie :)

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do