BEGIN
APEX_JSON.initialize_clob_output;
apex_json.open_object; -- {
apex_json.write('a', 1); -- "a":1
apex_json.open_array('b'); -- ,"b":[
apex_json.open_object; -- {
apex_json.write('c',2); -- "c":2
apex_json.close_object; -- }
apex_json.write('hello'); -- ,"hello"
apex_json.write('world'); -- ,"world"
apex_json.close_all; -- ]
-- }
DBMS_OUTPUT.put_line(APEX_JSON.get_clob_output);
APEX_JSON.free_output;
END;
Oracle etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Oracle etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
15 Mart 2018 Perşembe
11 Ağustos 2016 Perşembe
Oracle Apex - Shuttle için where clause
Shuttle nesnesi kullanırken aşağıdaki where cümleciği örneğini kullanabilirsiniz.
select .....
from ......
where
..... önceki koşullarınız.....
and
(
:P1_MY_SHUTTLE is not null and
(instr(':'||:P1_MY_SHUTTLE ||':',':'|| f.component_id||':',1) > 0 )
)
Oracle Apex - Shuttle item için genişliğin değiştirilmesi
Bazı durumlarda shuttle nesnesinin genişliğini değiştirmek gerekibiliyor.
Bunu yapmak için shuttle item için edit butonuna bastıktan sonra
"HTML Form Element Attributes" özelliğini aşağıdakine benzer
şekilde değiştirebilirsiniz.
Bunu yapmak için shuttle item için edit butonuna bastıktan sonra
"HTML Form Element Attributes" özelliğini aşağıdakine benzer
şekilde değiştirebilirsiniz.
HTML Form Element Attributes: style="width:250px"
Bir kolon içerisinde tekrarlayan verinin tekilleştirilmesi (distinct)
Önce
------------------------------
------------------------------
------------------------------
select group_id,
listagg(name, ',') within group (order by name) as names
from demotable
group by group_id
group_id names
-------- -----
1 'Alan, David, David, John'
2 'Charles, Julie'
Sonra ------------------------------
select group_id,
regexp_replace(
listagg(name, ',') within group (order by name)
,'([^,]+)(,\1)+', '\1')
from demotable
group by group_id;
group_id names
-------- -----
1 'Alan, David, John'
2 'Charles, Julie'
4 Şubat 2016 Perşembe
Security - Best Practises (Oracle - Linux vs)
Güvenlik konusunda ücretsiz olarak erişebileceğiniz
best practise dökümanlarına aşağıdaki linkten ulaşabilirsiniz.
(Oracle 11g,Oracle 12c, Mysql, DB2, Linux 6, VmWare, Apache, IIS vs. )
Örnek Döküman
-------------------------
CIS Oracle Database Server 11g R2 Benchmark v2.1.0
Release Date: Mon Nov 30 10:15:44 2015
https://benchmarks.cisecurity.org/downloads/show-single/?file=oracle11gR2.210
This document is intended to address the recommended security settings for Oracle Database 11g R2. This guide was tested against Oracle 11g R2 (11.2.0.4) running on a Windows Server 2012 R2 instance as a stand-alone system, and running on an Oracle Linux 6.5 instance also as a stand-alone system. Future Oracle 11g R2 critical patch updates (CPUs) may impact the recommendations included in this document.
https://benchmarks.cisecurity.org/downloads/browse/index.cfm?category=benchmarks.servers
best practise dökümanlarına aşağıdaki linkten ulaşabilirsiniz.
(Oracle 11g,Oracle 12c, Mysql, DB2, Linux 6, VmWare, Apache, IIS vs. )
Örnek Döküman
-------------------------
CIS Oracle Database Server 11g R2 Benchmark v2.1.0
Release Date: Mon Nov 30 10:15:44 2015
https://benchmarks.cisecurity.org/downloads/show-single/?file=oracle11gR2.210
This document is intended to address the recommended security settings for Oracle Database 11g R2. This guide was tested against Oracle 11g R2 (11.2.0.4) running on a Windows Server 2012 R2 instance as a stand-alone system, and running on an Oracle Linux 6.5 instance also as a stand-alone system. Future Oracle 11g R2 critical patch updates (CPUs) may impact the recommendations included in this document.
https://benchmarks.cisecurity.org/downloads/browse/index.cfm?category=benchmarks.servers
3 Şubat 2016 Çarşamba
Ön tanımlama gerekmeyen cursor loop
Genellikle cursor loop gerektiğinde aşağıdaki yapıyı kullanıyorum.
Hem kod okunurluğunu arttırıyor hem de daha kolay bir kullanımı var.
Daha fazla bilgi için aşağıdaki adresi inceleyebilirsiniz.
http://psoug.org/reference/control_struct.html
Hem kod okunurluğunu arttırıyor hem de daha kolay bir kullanımı var.
DECLARE
BEGIN
/* Open up a cursor for loop, also selecting
* the "p" function which will write rows to
* t2 for every row fetched from t1. */
FOR crec IN (SELECT tcol, p(tcol) FROM t1) LOOP
-- Break out of the loop immediately
EXIT;
END LOOP;
END;
Daha fazla bilgi için aşağıdaki adresi inceleyebilirsiniz.
http://psoug.org/reference/control_struct.html
Tek satırdaki ve belirli bir ayıraç ile ayrılmış verinin çok satırlı hale dönüştürülmesi(Connect By)
Aşağıda "," ayracı ile ayrılmış olan "abcd,123,defoifcd,87765" verisi
virgülle ayrılmış her bir veri ayrı bir satır olacak şekilde görüntülenmektedir.
virgülle ayrılmış her bir veri ayrı bir satır olacak şekilde görüntülenmektedir.
SQL> with t as (select 'abcd,123,defoifcd,87765' as str from dual)
select level as n, regexp_substr(str,'[^,]+',1,level) as val
from t
connect by regexp_substr(str,'[^,]+',1,level) is not null ;
N VAL
---------- ------------------------------
1 abcd
2 123
3 defoifcd
4 87765
SQL>
Birden fazla satır içeren verinin tek satırda gösterilmesi (LISTAGG)
select
deptno,
listagg (ename, ',')
WITHIN GROUP
(ORDER BY ename) enames
FROM
emp
GROUP BY
deptno
/
Komut çıktısı aşağıdaki gibi olacaktır.
DEPTNO ENAMES
---------- --------------------------------------------------
10 CLARK,KING,MILLER
20 ADAMS,FORD,JONES,SCOTT,SMITH
30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD
sqlplus ile yapılan işler için log oluşturma
ECHO {OFF|ON} : Çalıştırılmış olan komutu görüntüler.
SPOOL : Çıktıyı belitilen dosyaya yazar.
SQL> set echo on
SQL> SPOOL test.log
SQL> select 1 from dual;
1
----------
1
SQL>
Sonra test.log dosyası içine "cat" komutu ile baktığımızda çıktıyı görebiliriz.
-bash-3.2$ cat test.log
SQL> select 1 from dual;
1
----------
1
SQL>
SQL>
SQL> exit
-bash-3.2$
12 Eylül 2014 Cuma
OEL 5.5 üzerinde Apex 4.1 'den 4.2' ye upgrade
1) Apex 4.2, aşağıdaki adresten download edilir.
http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html
2) Download edilen apex4.2.5.zip istenilen bir klasöre açılır.
3) Zip dosyanın açıldığı klasörde apexins.sql dosyası çalıştırılır.
sqlplus ile sys user kullanılarak bağlanılmalıdır.
apexins.sql dışarıdan 4 parametre alır : APEX user için kullanılacak tablaspace, FLOWS_FILES user için kullanılacak tablespace,TEMP tablespace, image klasörünün ismi.
4) Upgrade sonrası kontrol
Kurulum sonrası aşağıdaki query sonucu "VALID" olmalıdır.
5) Image klasörünün ayarlanması
Kurulum sonrası, eski apex kurulumunuzun bulunduğu klasörün ismini değiştirin ve
yeni apex klasörünüzü buraya taşıyarak aynı ismi verin.
Sonrasında eski apex/images klasörünüzde bulunan manual yüklediğiniz resim dosyalarınızı
yeni apex/images klasörünüze kopyalayın.
6) Eğer Oracle 11g kullanıyorsanız ve mail atma gibi aksiyonlarınız varsa
ilgili network yetkileri “APEX_040200″ user için verilmelidir.
Aşağıdaki sql scripti sys user ile çalıştırılmalıdır.
http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html
2) Download edilen apex4.2.5.zip istenilen bir klasöre açılır.
3) Zip dosyanın açıldığı klasörde apexins.sql dosyası çalıştırılır.
sqlplus ile sys user kullanılarak bağlanılmalıdır.
apexins.sql dışarıdan 4 parametre alır : APEX user için kullanılacak tablaspace, FLOWS_FILES user için kullanılacak tablespace,TEMP tablespace, image klasörünün ismi.
$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 3 11:21:39 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.SQL> @apexins.sql APEX APEX TEMP /i/
Benim makinemde komutun tamamlanması 16 dk. sürdü.Sonrasında “APEX_040200″ kullanıcısının oluştuğunu görebilirsiniz.
Kurulum sonrası aşağıdaki query sonucu "VALID" olmalıdır.
$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 3 11:21:39 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.SQL> select status from dba_registry where comp_id='APEX';STATUS-------------------------------------------------------VALID5) Image klasörünün ayarlanması
Kurulum sonrası, eski apex kurulumunuzun bulunduğu klasörün ismini değiştirin ve
yeni apex klasörünüzü buraya taşıyarak aynı ismi verin.
Sonrasında eski apex/images klasörünüzde bulunan manual yüklediğiniz resim dosyalarınızı
yeni apex/images klasörünüze kopyalayın.
6) Eğer Oracle 11g kullanıyorsanız ve mail atma gibi aksiyonlarınız varsa
ilgili network yetkileri “APEX_040200″ user için verilmelidir.
Aşağıdaki sql scripti sys user ile çalıştırılmalıdır.
DECLAREACL_PATH VARCHAR2(4000);BEGIN-- Look for the ACL currently assigned to '*' and give APEX_040200-- the "connect" privilege if APEX_040200 does not have the privilege yet.SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLSWHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_040200','connect') IS NULL THENDBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,'APEX_040200', TRUE, 'connect');END IF;EXCEPTION-- When no ACL has been assigned to '*'.WHEN NO_DATA_FOUND THENDBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml','ACL that lets power users to connect to everywhere','APEX_040200', TRUE, 'connect');DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');END;/COMMIT;
Bu blog yazısını hazırlarken gerçekleştirdiğim upgrade
deneyimi yanısıra aşağıdaki adresten yararlandım.
İncelemeniz faydalı olabilir.
deneyimi yanısıra aşağıdaki adresten yararlandım.
İncelemeniz faydalı olabilir.
https://matthiashoys.wordpress.com/tag/apexins-sql/
Kaydol:
Kayıtlar (Atom)