Vinnaren i pepparkakshustävlingen!
2010-03-03, 22:12
  #1
Medlem
Jag är nybörjare på SQL.

Jag vill använda sysdate, 'month' funktionen för tabellen på jobbet.

och jag vill inte att den ska returnera JANUARI osv.

Jag vill ha JANUARY.

Hur gör jag? Provade på min kollegas datorn och då vart det på Finska, ja han är finne.

Hur kan man göra för att den ska returnera på engelska??

Jag kan troligtvis inte ändra nåt på servern.
Vi kör Oracle 10.9.

Alltså, kan jag ändra språk i query:n?

jag googlade lite utan succé, men de närmast var
sys_context och 'LANGUAGE'. men vetefan.

Tack för hjälpen!!
__________________
Senast redigerad av stfu_rtfm 2010-03-03 kl. 22:14. Anledning: lite stavfel och blunders
Citera
2010-03-03, 22:41
  #2
Medlem
desmoduss avatar
Var längesen jag jobbade med Oracle, men vad händer om du skriver såhär innan du exekverar din sql?

Kod:
ALTER SESSION SET NLS_LANGUAGE 'ENGLISH'

EDIT: Googlade lite och stötte på den här:

http://dba-oracle.com/bk_alter_sessi...s_language.htm

Verkar som det även finns en NLS_DATE_LANGUAGE. Kanske den ska använda då.
__________________
Senast redigerad av desmodus 2010-03-03 kl. 22:49.
Citera
2010-03-03, 22:47
  #3
Medlem
hej.

funkar det även fast man bara har typ vanliga rättigheter?

alltså så att den gör det i queryn.

vet du förresten hur den fångar upp språk?

verkar ju som den går efter datorns inställningar och inte serverns.

jag ska ju exportera till excel och kan ju lika gärna byta där automatiskt.
men vill allra helst ha det i rå-datan på en gång.

vart skriver man det du sa?
innan SELECT eller där to_char, sysdate....... ???
Citera
2010-03-03, 22:51
  #4
Medlem
tack iaf. sökte på det du sa.
hittade följande så jag verkar ju vara på spåret igen.
får försöka med koden imorn.

tack igen!!


----

All other NLS parameters can be retrieved by a:

SELECT * FROM NLS_SESSION_PARAMETERS;
Note:

SELECT USERENV ('language') FROM DUAL; gives the session's <Language>_<territory> but the DATABASE character set not the client, so the value returned is not the client's complete NLS_LANG setting!


Top of the Document


The Priority of NLS Parameters related to NLS_LANG

This section explains the order in which NLS parameters are taken into account in the database client/server model. (This does NOT cover Thin JDBC connections)

There are 3 levels at which you can set NLS parameters: Database, Instance and

Session. If a parameter is defined at more than one level then the rules on which one takes precedence are quite straightforward:

1. NLS database settings are superseded by NLS instance settings

2. NLS database & NLS instance settings are superseded by NLS session settings

Session Parameters

SELECT * from NLS_SESSION_PARAMETERS;

These are the settings used for the current SQL session.

These reflect (in this order):

1) The values of NLS parameters set by "ALTER SESSION "

ALTER SESSION set NLS_DATE_FORMAT = 'DD/MM/YYYY';

2) If there is no explicit "ALTER SESSION " statement done then it reflects the setting of the corresponding NLS parameter on the client derived from the NLS_LANG variable.

3) If NLS_LANG is specified with only the <Territory> part then AMERICAN is used as default <Language>.

So if you set NLS_LANG=_BELGIUM. WE8MSWIN1252 then you get this:

PARAMETER VALUE

------------------------------ --------------

NLS_LANGUAGE AMERICAN

NLS_TERRITORY BELGIUM

NLS_CURRENCY <euro sign here>

NLS_ISO_CURRENCY BELGIUM
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback