SERKAN ODACI
Senior Software Developer
Senior Software Developer
7 Eyl
Özellikle büyük ebatlı projelerde yaşanan kopayala yapıştırı eziyete dönüştüren “Insufficient available memory to meet the expected demands of an operation at this time, possibly due to virtual address space fragmentation. Please try again later.” hatasının en ilkel çözümü Visual Studio yu kapatıp açmak
Hatanın Micsrosoft tarafından çıkarılmış fix inide buradan bulabilirsiniz.
Hadi geçmiş olsun
)
27 Haz
Fatura Adresi gibi String Bir değeriniz var ve buradaki değerden sadece Kapı Numaralarını almak istiyorsanız şöyle birşey deneyebilirsiniz.
REGEXP_REPLACE(upper(ab.fatura_adresi),’[^0-9]‘)
Bu fonksiyon örnekteki şekilde kullanılırsa sadece numeric karakterleri verir.
21 Haz
Şayet bu hatayı arayıp buralara kadar geldiyseniz, bilgisayarınız ram ini bayağı bir yormuşşunuz demektir ![]()
Bu hatanın sebebi ramin dolması veya projenizin exe sinin bir şekilde açık kalmasından kaynaklanmaktadır.
Şayet bunlarda işe yaramaz ise bilgisayar dünyasının en güzeli çözümü olan yeniden başlat olacaktır tek çareniz
)
Hadi sağlıcakla…
13 Haz
Minus iki set arasındaki farkı vermektedir
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT 'ALİ' FROM DUAL UNION ALL SELECT 'VELİ' FROM DUAL MINUS SELECT 'ALİ' FROM DUAL; |
Intersect ise kesişimini vermektedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT 'ALİ' FROM DUAL UNION ALL SELECT 'VELİ' FROM DUAL INTERSECT SELECT 'ALİ' FROM DUAL; |
Union ve Union All kullanımını ise yukarıdaki örneklerde olduğu gibi düşünebiliriz. Union ile Union All arasındaki en önemli farklardan birisi Union distict işlemi yapar, Union All ise yapmaz.Aşağıdaki sql’in sonucunda iki adet VELİ görünür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT 'ALİ' FROM DUAL UNION ALL SELECT 'VELİ' FROM DUAL UNION ALL SELECT 'VELİ' FROM DUAL; |
Ve son olarakta aşağıdaki sql sonucu bir adet VELİ görünür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT 'ALİ' FROM DUAL UNION SELECT 'VELİ' FROM DUAL UNION SELECT 'VELİ' FROM DUAL; |
Sağlıcakla…..
6 Haz
Şayet Google chrome kullanıyorsanız sağ üstteki anahtarı tıklayın, açılan menüden seçenekler- gelişmiş seçenekler-güvenlik bölümünde SSL 3.0 Kullan kutucuğunu işaretleyin
12 May
Visual Studio dan alışık olduğumuz Clipboard Ring özelliği, SQL Server 2011 (Denali) Management Studio – Query Editor ile de karşınızda.
SQL SERVER 2011 de, Clipboard Ring özelliği ile “Ctrl + C” veya “Ctrl + X” ile Clipboard’a aldığınız değerler içerisinde,
Ctrl + Shift + V ile geriye doğru gidebiliyor ve Ctrl + V ile halkada gelinen noktayı yapıştırabiliyorsunuz.
5 Nis
Select Sorgusundan DML Kullanan Fonksiyon Çağırmak
Örneğin bir fonksiyon var (ister paket(package) içinde ister tek başına bulunsun), ve fonksiyonun içindede bir DML cümlesi çalıştırıyorsunuz. (INSERT,DELETE veya UPDATE). Ve fonksiyonu çağırmak için “SELECT PakageName.FunctionName FROM Dual” yaptınız. Bu durumda hata alırsınız:ORA-14551: bir sorgu içinde bir DML işlemi gerçekleştirilemez. Bunu yapabilmek için :
PRAGMA AUTONOMOUS_TRANSACTION kullanmanız gerekmektedir.
Oracle PRAGMA AUTONOMOUS_TRANSACTION ifadesini gördüğü anda bunu tamamen bağımsız bir transaction olarak algılayacak ve fonksiyonu askıya alarak bu transactionı COMMIT yada ROLLBACK olana kadar çalıştıracaktır, bu ifadeler ile karşılaştığında fonksiyonu çalıştırmaya devam edecektir.
Örnek kod aşağıdadır
ÖRNEK 1
1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE OR REPLACE FUNCTION F_DENEME1 RETURN NUMBER IS r_n_temp NUMBER(1); PRAGMA AUTONOMOUS_TRANSACTION; BEGIN UPDATE Deneme SET TempValue = 1; --DML işlemi COMMIT; r_n_temp := 1; RETURN r_n_temp; END; |
ÖRNEK 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | FUNCTION F_DENEME RETURN NUMBER IS r_n_temp NUMBER(1); BEGIN r_n_temp := 0; P_UPDATE_TEMP; --DML kullanılacak prosedür. r_n_temp := 1; ---COMMIT; --bu fonksiyon içinde Commit yapmaya --gerek yoktur çünkü herhangibi bir DML işlemi yapmadık. --Ancak eğer çağırdığımız prosedürde --AUTONOMOUS_TRANSACTION kullanmasaydık ve orada COMMIT --yapmasaydık burada COMMIT yapabilirdik! RETURN r_n_temp; END; --Update işleminin gerçekleşeceği prosedür: --------------------------------------------------- PROCEDURE P_UPDATE_TEMP IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN UPDATE Temp_Table SET TempVal = 1; --DML işlemi COMMIT; --Commit yapılmazsa transaction açık kalacağından hata döndürecektir. END; |
ÖRNEK 3
1 2 3 4 5 6 7 8 9 10 11 | Sonuç olarak fonksiyonda başlayan transaction PRAGMA AUTONOMOUS_TRANSACTION gördüğü anda beklemeye başlar ve AUTONOMOUS_TRANSACTION bu transaction dan tamamen bağımsız çalışır ve işi bitince (COMMIT/ROLLBACK; END;) tekrar ilk transaction devreye girer ancak AUTONOMOUS_TRANSACTION da yapılan işlemlerden tamamen habersizdir. Query: SELECT F_DENEME as Deneme FROM DUAL Result Deneme ------------ 1 1 row selected |
Sağlıcakla…
1 Haz
Symptom:
When attempting to run a report, an error message states: ‘Failed to Create the Crystal Query Engine’.
Solution 1:
There may be mismatched Crystal report DLLs in the system32 directory.
Rename the CRPE32.DLL file in the C:\Windows\System32 directory to CRPE32.DLL.OLD and reinstall the program. A new CRPE32.DLL file will be installed that should match all the other dll versions.
Solution 2:
You may have Crystal Reports installed and the dll needs to be re-registered.
1. Quit Crystal Reports.
2. On the Windows taskbar, click the ‘Start’ button and then click ‘Run’.
3. Type: ‘regsvr32 “C:\Windows\System32\crqe.dll”‘.
4. Click ‘OK’.
A message appears indicating the file is successfully registered. If the file does not register correctly, try solutions 2.
Note:
You may need to locate the crqe.dll if it is not in the c:\windows\system32 direcotry. In this case, on the Windows taskbar, click the ‘Start’ button > Find (or Search) > Files and Folders. Enter crqe.dll and perform search. Note the location and substitue the path to register this file.