title: Session vs Instance vs Database in Oracle NLS Settings
body: <p>Why in Oracle there are <strong>three</strong> logical <strong>distinct</strong> views for <strong>N</strong>ational <strong>L</strong>anguage <strong>S</strong>upport ?</p>
  
  <p>I can understand the need for distinguishing between session and database - to allow for client custom settings.</p>
  
  <p>What about Session versus Instance ?</p>
  
  <p>I ran a query to compare the values between them all, and here are the results (I noticed NLS_DATABASE_SETTINGS has more parameters all the parameters the others have plus some more, hence I am doing an outer join with it as my starting point):</p>
  
  <pre><code>SELECT
     db.parameter as parameter,
     db.value as database_value,
     s.value as session_value,
     i.value as instance_value
  FROM
     nls_database_parameters db
  LEFT JOIN 
     nls_session_parameters s
  ON s.parameter = db.parameter
  LEFT JOIN 
     nls_instance_parameters i
  ON i.parameter = db.parameter
  ORDER BY parameter
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/6mqpO.png" alt="enter image description here"></p>
  
  <p>I am trying to dig deep and solve an issue of my pl/sql developer client, alone, not being able to display Hebrew characters. All the others in the company are.</p>
  
  <p><strong>Update</strong>: the issue of display characters in Hebrew (which is not the question here) was solved, following the solution I posted <a href="https://stackoverflow.com/questions/25637449/pl-sql-developer-displays-does-not-display-hebrew-characters-properly"><strong>here</strong></a>.</p>