Archive for the ‘Programowanie’ Category

Podział ekranu w vim

Grudzień 3rd, 2010

Czasem przydatną opcją jest podział ekranu pracy na dwie części.

Pionowy podział uzyskamy komendą:

(tryb komend) :new tab nazwa pliku

lub

(tryb komend):split

Przechodzimy między oknami:

(tryb komend)Ctrl+W+strzałka w zależności do którego okna chcemy przejść

Kolejna porcja komend dla vim-a ;)

Listopad 26th, 2010

Duplikowanie linii w której znajduje się kursor:

(tryb komend) yyp

Usuwanie linii w której znajduje się kursor:

(tryb komend) yyd

Wyświetlenie pomocy kontekstowej

(tryb edycji) Ctrl+N

MySQL + PHP = problem z kodowaniem

Listopad 2nd, 2010

Mam plik zakodowany w UTF8 i bazÄ™ danych w MySQL która ma ustawione kodowanie tabel na utf8_polish_ci. Z pomocÄ… php chcÄ™ jÄ… wypeÅ‚nić. Niestety mimo wielu prób otrzymywaÅ‚em zamiast polskich liter krzaki…

Rozwiązaniem by po nawiązaniu połączenia zadeklarowanie używanego kodowania, w taki sposób:


$dbh->query('SET NAMES "utf8"');

create table as select where rownum, czyli o tworzeniu kopi tabeli z ograniczeniami

Październik 21st, 2010

Czasem w czasie procesu testowania stworzonych procedur lub większych zapytań sql pojawia się potrzeba częstego ich testowania. Jednak często oryginalne dane, które mamy przetwarzać są zbyt duże by testy przeprowadzać w trakcie powstawania kodu. Dobrym rozwiązaniem tego problemu jest stworzenie kopi tabel z małą próbką testową orginalnych danych.

Kod stworzenia kopi tabeli, gdzie n jest zadaną ilością wierszy kopiowanych:


create table tablica_kopia as
 select * from tablica_orginalna
 where rownum <=n;

Select random, czyli jak wyciagnać z tabeli losowe rekordy

Październik 16th, 2010

Miałem problem jak wyciągnąć kilka tysięcy losowych rekordów z dość sporej tablicy i zapragnąłem znaleźć rozwiązanie w jednym zapytaniu do bazy danych. Oczywiście dzięki bibliotekom udostępnianym przez Oracle takie rozwiązanie jest możliwe. Skorzystałem z pomocy pakietu dbms_random.

A oto kod gotowego zapytania wyciągającego n losowych rekordów z zadanej tabeli:


select * from table_name where row_id in (
select row_id from(
select row_id, dbms_random.value  from table_name order by 2)
where rownum<=n);