தனிமை என்பது கொடுமை என்று பலரும் எண்ணுகின்றனர். ஆனால், உண்மையில் தனிமை ஓர் சிறந்த ஆசான். வாழ்க்கையை பற்றிய சரியான, உண்மையான பாடங்களை கற்றுக் கொடுப்பதே தனிமை தான். தனிமை ஓர் சிறந்த நண்பன். உங்கள் மீது உண்மையான அன்பு செலுத்துபவர்கள் யார், உங்களிடம் நேர்மையாக நடந்துக் கொள்பவர்கள் யார் என்பதை தனிமை தான் உணர்த்துகிறது.

நீங்கள் தனிமையில் இருக்கும் போது அல்லது தனிமையில் தள்ளப்பட்டிருக்கும் சூழலில் தான் நீங்கள் தான் உங்களது சிறந்த நண்பர் என்பதை உணர முடியும். தனிமை தான் உங்களுக்கு எதையும் கையாள முடியும், கையாள முடியாத நிலை என்று எதுவும் இல்லை என்று கற்றுக் கொடுக்கிறது.

உங்கள் மகிழ்ச்சி பிறரை சார்ந்தது அல்ல என்பதை நீங்கள் உணரும் தருவாய் தனிமை. மற்றும் உங்கள் மகிழ்ச்சி மற்றவரது கைகளில் இல்லை என்பதையும் தனிமை உங்களுக்கு கற்றுக் கொடுக்கிறது. உங்கள் வாழ்க்கை சிறக்க நீங்கள் தான் முடிவெடுக்க வேண்டும் என்பதை தனிமை மட்டுமே கற்றுக் கொடுக்கும்.

நீங்கள் விரும்பும் செயல்களை மற்றவர்களின் துணை அல்லது உதவி இன்றி நீங்களே செய்து முடிக்க முடியும் என்ற ஊக்கத்தை தனிமை தான் அளிக்கிறது. தனிமை உங்களுக்கு அளிக்கும் மிகச்சிறந்த பரிசு, அமைதி மற்றும் பொறுமை. இவை இரண்டும் உங்களை வாழ்க்கையின் அடுத்தக் கட்டத்தை அடைய உதவியாக இருக்கும். உண்மையான உறவுகளை இணைக்கும் பாலம் தான் தனிமை. இது, உங்கள் பெற்றோர், நண்பர்கள் மத்தியில் ஒன்றிணைந்து செயல்பட உதவுகிறது.

Modifying Column Type in Table
Method 1 :

  1. Add a Copy of the Column appending to some identifier to say its a copy i.e _CP
  2. Update the New Column to the Column whose datatype is to be changed
  3. Drop the Old Column
  4. Rename the New Column to Old Column Name
ALTER TABLE TB1 ADD COL_CP VARCHAR2(10);

UPDATE TB1 SET COL_CP = COL1;

ALTER TABLE TB1 DROP COLUMN COL1;

ALTER TABLE TB1 RENAME COLUMN COL_CP to COL1;

In case you are upgrading from Varchar2(250) to Varchar2(4000) the above is not required

Method 2 :

  1. Create a New table(TB2) with the same Columns and Type
  2. Insert the Values into TB2
  3. Truncate or Drop Table TB1
  4. Run the Changes such as New DDL Script
  5. Insert into new Table TB1 from TB2
  6. Drop Table TB2
CREATE TABLE TB1(COL1 NUMBER);

INSERT INTO TB1 VALUES(10);

CREATE TABLE TB2 AS
SELECT * FROM TB1;

DROP TABLE TB1;

.
.
New table Creation Script with New Column Types
.
.
.

INSERT INTO TB1
SELECT * FROM TB2;

DROP TABLE TB2;

While developing Java designers made a Mistake by allowing the static methods to get invoked by instance of a class.

someVariable.SomeMethod() I expect it to use the value of someVariable. If SomeMethod() is a static method, that expectation is invalid.

Language spec allows it like VB does and C# doesn’t.

class Base
{
    static void foo()
    {
        System.out.println("Base.foo()");
    }
}

class Derived extends Base
{
    static void foo()
    {
        System.out.println("Derived.foo()");
    }
}

public class Test
{
    public static void main(String[] args)
    {
        Base b = new Derived();
        b.foo(); // Prints "Base.foo()"
        b = null;
        b.foo(); // Still prints "Base.foo()"
    }
}

There may be times where the excel date is displayed as number like one below. In such case the date can be converted to string as follows

Two things

  1. The J column is aligned to Left which tells there is some custom format done over the cells
  2. On selecting the cell and when you check the drop down at top it shows Custom

The Column K represents the actual value of Cells in J by making it to text format. Now to convert the Column J to Text use this simple excel formula

 =TEXT(A1,"DD/MM/YYYY hh:mm:ss")

இதனை இதனால் இவன்முடிக்கும் என்றாய்ந்
ததனை அவன்கண் விடல்.

“யாரால் இந்த வேலையை முடிக்க முடியும்?”, “அதை செய்வதற்கு அவனுக்கு வேண்டியவை இருக்கின்றதா?” என்பதை யோசித்து ஒரு அரசன் ஒரு வேலையை செய்ய ஆளை தேர்ந்தெடுக்க வேண்டும். அவனை தேர்ந்தெடுத்த பின் அந்த வேலையை அவனிடமே முழுமையை விட வேண்டும்

வெள்ளத்தனைய மலர் நீட்டம்; மாந்தர் தம் உள்ளத்தனையது உயர்வு — திருவள்ளுவர்

Whenever you submit a form to download a file the response sent back is a file. In this case the setter called after the method which does the download has no effect.

 if(form.getDownloadForm != null && form.getDownloadForm.equals("Y"))
 {
   downloadForm(form, request);

   //The Below Setter has No Effect
   form.setDownloadForm("Y");
 }
 class RegisterForm()
 {
   public String downloadForm;

    public void setDownloadForm(String p_download) 
    {
	  this.downloadForm= p_download;
    }
    
    public String getDownloadForm() 
    {
	  return downloadForm;
    }
 } 

The Setter had no effect since the request sent to the downloadForm(form, request); will end up with response of file download and not response which has new values to form set by setter(in our case downloadForm(form, request)) and Page reload.

There are 2 simple fix for this.

Fix 1
One simple fix is to set form hidden property in java script to N after the form get submitted. Note though the form is submitted it is not reloaded with new response since the response sent back is a file.

The Page will be reloaded only when response is sent back to the same URL of browser. Not to the browser as file.

 function downloadWFSetup(pWaterfallId) 
 {	
    $('#downloadForm').val('Y');
    document.WaterfallTriggerForm.submit();

    //This part of code runs even after the form submission since the 
    //response sent is file which does not require page reload
    $('#downloadForm').val('N');			
 }

In our case the page is not going to get reloaded so the java script continues its execution even after form submission setting property of downloadForm to N.

Fix 2
The Other way is to send request in Link with downloadForm=Y. In this case there is no need to to reset the form values as we get the values by request.getParameter() Method.

சிந்தனை 1

‘செல்லாத காசுக்குள்ளும் செப்பு இருக்கு’னு சொல்வாங்க. என் வாழ்க்கையில் நான் கத்துக்கிட்ட ஒரே விஷயம் இதுதாங்க. அடுத்த மனுஷனை மதிக்கணும். அவரையும் நம்மோட ஒருத்தரா நேசிக்கணும். இங்க பெரியவங்க, சின்னவங்கனு யாரும் இல்லை. எல்லாப் பெரியவங்களுக்கும் ஒரு ‘நேத்து’ இருக்கும். அதுபோல சின்னவங்களுக்கும் ஒரு ‘நாளை’ இருக்கும். எனக்கு டீ தர்றான் ஒரு பையன். அது அவர் வேலை. அவர் எங்க வீட்டுக்கு வந்தா நான்தான் அவருக்கு டீ எடுத்துட்டு வந்து தருவேன். தரணும்.

என்னைப் பொறுத்தவரைக்கும் மனுஷங்க மகான்களாவறது பெரிய விஷயம் இல்லை; மனுஷங்களாவே இருக்க முடிஞ்சா… அதுதாங்க சந்தோஷம்!”

-தேவா

சிந்தனை 2

வாழ்வதற்கான செலவு மிகவும் குறைவு…
அடுத்தவன் போல் வாழ்வதற்குத் தான் செலவு அதிகம்…!!

Table Function return a result set that mimics what we would normally expect from a traditional SQL SELECT statement

Table functions are a new feature in Oracle9i that allow you to define a set of PL/SQL statements that will, when queried, behave just as a regular query to table would. The added benefit to having a table function is that you can perform transformations to the data in question before it is returned in the result set.

CREATE OBJECT
Create our own object type called PERSON_DETAILS.Then we create a table of PERSON_DETAILS called PERSON_DETAILS_TABLE.

CREATE TYPE PERSON_DETAILS AS OBJECT
       (USER_NAME     VARCHAR2(50),
        ADDRESS       VARCHAR2(50),
        LOCATION      VARCHAR2(50));
/
CREATE TYPE PERSON_DETAILS_TABLE AS TABLE OF PERSON_DETAILS;
/

PIPELINED Clause

Within the CREATE FUNCTION clause, there is a new option called PIPELINED. This option tells Oracle to return the results of the function as they are processed, and not wait for a complete execution or completion of the result set. This pipelining of the result set to one row at a time has the immediate advantage of not requiring excessive memory or disk staging resources.
PIPE ROW(out_rec)

The PIPE ROW statement is the interface or mechanism to send a piped row through the PIPELINED option through to the caller of the function.

Working with a simple pipelined function requires 2 things

  • collection type
  • pipelined function
 CREATE OR REPLACE TYPE number_ntt AS TABLE OF NUMBER;
CREATE FUNCTION row_generator(rows_in IN P_INTEGER) RETURN number_ntt
  PIPELINED IS
BEGIN
  FOR i IN 1 .. rows_in LOOP
    PIPE ROW(i);
  END LOOP;
  RETURN;
END;
/

The CSV_TABLE is a collection which has rows of comma separated value.

CREATE OR REPLACE TYPE "CSV_TABLE" as table of varchar2(32767)
CSV_TABLE
FUNCTION CSV_TO_TABLE(p_delimted_string VARCHAR2,
                         p_delimter        VARCHAR2 := ',')
  RETURN CSV_TABLE
  PIPELINED IS
  indexCount PLS_INTEGER;
  csvString  VARCHAR2(32767) := p_delimted_string;
BEGIN
  LOOP
    indexCount := instr(csvString, p_delimter);
  
    IF indexCount > 0 THEN
      PIPE ROW(substr(csvString, 1, indexCount - 1));
      csvString := substr(csvString, indexCount + length(p_delimter));
    ELSE
      PIPE ROW(csvString);
      EXIT;
    END IF;
  
  END LOOP;
  RETURN;
END CSV_TO_TABLE;

Input

A,B,C,D

Output

A
B
C
D

The above output is a collection.

 SELECT PACKAGE_NAME.CSV_TO_TABLE('A,B,C,D') FROM DUAL;