Monday, 12 November 2018

How to setup remote debug with WebLogic Server and Eclipse


There is a nice blog on how to remote debug Weblogic server using Eclipse in the below link

how-to-setup-remote-debug-with-weblogic.html

Debugging Oracle Big Data Analytics using BigSift



BigSift combines insights from automated fault isolation in software engineering and data provenance in database systems to find a minimum set of failure-inducing inputs. It redefines data provenance for the purpose of debugging using a test oracle function and implements several unique optimizations, specifically geared towards the iterative nature of automated debugging workloads.

BigSift exposes an interactive web interface where a user can monitor a big data analytics job running remotely on the cloud, write a user-defined test oracle function, and then trigger the automated debugging process.

BigSift also provides a set of predefined test oracle functions, which can be used for explaining common types of anomalies in big data analytics







More on Bigdata from Oracle at the below link

https://blogs.oracle.com/datawarehousing/big-data-8

Wednesday, 5 September 2018

Insert data in Table containing Long column in Oracle database(OFF TOPIC)



We can use the copy command in sqlplus to insert data in table containing a long column in the database. This will only work for long column and will not work for long raws.

First, we need to login to the database using sqlplus


> SQLPLUS tkyte/tkyte@aria 


we have the below table with the long column


create table foo
( The_Whole_View   varchar2(65),
  TextLength       number,
  TheText          Long )
/


Next, we can set the below set commands to define the parameters for the copy command to be used to insert into the table which has the long column

  • set arraysize N -- the number of rows the copy command will copy with each fetch
  • set long N -- the size of your longest long
  • set copycommit M -- the number of fetches to do before commit (N*M rows!!)

Then we can use the copy command to insert data into the table which has the long column


SQL> copy from tkyte/tkyte@aria insert foo (the_whole_view, textlength, thetext ) using select owner||'.'||view_name, text_length, text from all_views;


This article is also available in the link Moving LONGS Around

Thursday, 4 May 2017

Good concept of Islamic banking

Oracle database tables,functions,procedures can be named in Arabic for Islamic banking

Monday, 1 May 2017

Easy implementation of Foreign language in Oracle database

As per my understanding oracle database is difficult to use in Arabic

The implementation can be done by using google translate 

For example dba_views

The simple implementation is

dba_views can be translated with below steps

1. Translate views into الآراء
2.Translate dba into دبا
3.Translate dba_views  as دبا _ الآراء
4.Build a different dictionary from a to z and translate in verse order in database.
Korean Language implementation

1.Convert Korean characters into dba_views

2.For example 

i.d into 디 
ii.b into 비 
iii.a into 에이
iv.dba can be converted into  디 비에이
v.view can be converted into 전망
vii.s can be converted into 에스
vi.디 비에이 _전망에스
Viii.build a dictionary with vowels in oracle database. Banks with oracle database in Tamil Nadu can use translate Tamil using the following link from wikipedia

Regards,
P Santhiagu 

Monday, 1 September 2014

My Interesting Accepted Answers in Stack Overflow (OFFTOPIC)

Stack overflow is a great site and i have been using it for the past 2+ years to help and get help from the programming community.So i had a thought of sharing some interesting answers i had done in Stack Overflow.

1)Plsql To spell Number in Italian Currency

Please find the stack overflow link here  PLSQL to spell currency in Italian 

This answer is just for showing the possibilities we can do with Oracle database and as mentioned by User APC it over relays on internet connection to database.Also nowadays most websites use SSL which makes this code invalid

Still there is no worry since we can use Oracle wallet to verify SSL certificate 

Please find my answer which even though not accepted will be useful to someone using internet in oracle database.This answer returns latitude and longitude of the address given  using google search engine


Interesting factor:- One interesting aspect about the above answer is that we had to specifically use the below mozilla firefox google search URL since the other common browsers Google chrome and IE do not display the latitude and longitude value in the page source returned by google search.

HttpUriType('http://www.google.co.in/search?q=find+latitude+and+longitude+of+' ||address||'&'||'ie=utf-'||'8&'||'oe=utf-'||'8&'||'aq=t'||'&'||'rls=org.mozilla'||':'||'en-US'||':'||'official'||'&'||'client=firefox-a');



2)Using Function equivalent of using Function in the "IN" Operator


This answer suggest a workaround to achieve the same effect using function returning multiple values in IN operator.The most important point to note is that using function in SELECT statement would cause index not to be used in the column used in the function

Please find the link on the article about using functions in SELECT statement 

 Interesting factor:-Instead of getting multiple value from function used in SELECT statement which doesn't work without nested table or collections .
We can  just check whether the value together with the where clause parameter returns any rows.So if the count is greater then return 1 otherwise return  0.The snippet below


Before

SELECT p_value 
               FROM parameter_table
               WHERE p_name LIKE 'A_04'
After

BEGIN 
 select count(1) into l_count from parameter_table where p_value =p_value1 
 and p_name=p_name1;
 if l_count > 0
 then 
 return 1;
 else
 return 0;
 end if;

 3)Performance improvement for Get record based on year in oracle:-

Please find the stack overflow link here Get record based on year in oracle

For getting the number of days between two dates the OP was counting each day between the two days using connect by


Interesting Factor:- We suggested an Approach instead of counting each day between year the following can be done

  1. First consider only the number of days between start date and the year end of that year or End date if it is in same year
  2. Then consider the years in between from next year of start date to the year before the end date year
  3. Finally consider the number of days from start of end date year to end date


4)Using underscore on left side of where clause  similar to using them in LIKE operator in where clause 

Please find the stack overflow link here Compare values with different accent in oracle database

Normally oracle doesn't allow using underscore as single wild card on the left side of a where clause.The OP wanted to use it in left side since we was comparing values with different accents

Interesting Factor:- In addition to the answer the idea was to match the accent characters with underscore for the number of equivalent characters used in english. This solution is based on the assumption used by the OP to make _ (underscore) match with 'any' character in the database


SELECT word FROM test1
WHERE NLS_UPPER(word, 'NLS_SORT = XGERMAN') = 'GROSSE';

WORD
------------
GROSSE
Große
große
and use the below to match GROÑßE with GRONSSE the english equivalent accent with three _
NLS_UPPER('GROÑßE','NLS_SORT=XWEST_EUROPEAN')=UPPER('gro___e');





Monday, 10 October 2011

(OFFTOPIC) Searching a Long Column using PLSQL in Oracle Database 10g

This post is just the continuation of the post to search long column in SQL ,the only difference being this is done for searching in PLSQL

Here i have used the concept of global temporary table with clause on commit delete rows,this concept of global temporary tables is very interesting,for all the information check it in http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#sthref2213

create global temporary table LONG_TEST_TEMP
(
TABLE_NAME VARCHAR2(30),
COLUMN_NAME VARCHAR2(30),
ROW_ID VARCHAR2(30),
CLOB_DATA CLOB
)
on commit delete rows;

The below is a normal table where you can get the result of the search item

create table CHECK_VALUE_INFO
(
TABLE_NAME VARCHAR2(30),
COLUMN_NAME VARCHAR2(30),
ROW_ID VARCHAR2(30)
)

Compile the below program to search for the LONG column in table with and without the COMMIT to see one good difference between them

This program also supports a wild card search of a LONG column value within the schema with mainly the overhead on time and resources

create or replace procedure pr_check_value_long(p_value IN OUT VARCHAR2,
p_table IN VARCHAR2 DEFAULT NULL,
p_sql_col IN VARCHAR2 DEFAULT NULL) is
Cursor cr_usr is
select *
from user_tab_columns
where data_type = 'LONG'
and table_name = NVL(p_table,
table_name)
and column_name = NVL(p_sql_col,
column_name);
l_sql_text VARCHAR2(32000);
l_count NUMBER;
l_sql_col VARCHAR2(32000);
BEGIN
for rec in cr_usr
Loop
l_sql_col := '"' || rec.column_name || '"';
BEGIN
EXECUTE IMMEDIATE 'insert into long_test_temp select ' || '''' ||
rec.table_name || '''' || ',' || '''' ||
l_sql_col || '''' || ',' || 'rowid' || ',' ||
'to_lob(' || l_sql_col || ')' || ' from ' ||
rec.table_name;
l_sql_text := ' insert into CHECK_VALUE_INFO SELECT TABLE_NAME,COLUMN_NAME,ROW_ID
FROM long_test_temp WHERE clob_data LIKE ' || '''' || '%' ||
p_value || '%' || '''';
EXECUTE IMMEDIATE l_sql_text;
l_sql_text := NULL;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
END;
end loop;
p_value := NULL;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
END;

Below is a example of doing the search for the column LONG_VALUE of datatype LONG and table name TEST_LONG_VALUE

DECLARE
P_VALUE VARCHAR2(4000):='131';
BEGIN
pr_check_value_lonG(p_value,'TEST_LONG_VALUE','LONG_VALUE');
END;

Also an example of how you can check the result

SELECT a.*  FROM test_long_value a WHERE a.ROWID IN
(SELECT ROW_ID FROM CHECK_VALUE_INFO b where b.table_name='TEST_LONG_VALUE' and b.column_name='LONG_VALUE')

Happy times searching :)