Λοιπόν σε ένα μικρομάγαζο (κυριολεκτικά μικρό όμως) έτυχε να τα έχει
στήσει ο άνθρωπος που κάνει την τεχνική εγκατάσταση εκεί όλα σε τζαμπέ
προγράμματα... ένα από αυτά ήταν και η Oracle express edition (10g)
την οποία σκεφτόμουν για λόγους εντελώς case study να την
χρησιμοποιήσω για το demo του softone αφού δεν είχαμε πουθενά windows
να τρέξουμε έστω τον msde...
Οπότε καθώς για να πρέπει το Softone να τρέξει σωστά θέλει
συγκεκριμένο character set είπα κι εγώ να ανοίξω μια καινούργια
βάση... οπότε ανακαλύπτω ότι στην express της Oracle δεν επιδέχεται να
ανοίξεις με αυτόματο τρόπο νέα βάση... οπότε λέω λοιπόν θα
χρησιμοποιήσω την υπάρχουσα...
και πως αλλάζουμε λοιπόν σε υπάρχουσα βάση στην oracle XE collation
(με την προϋπόθεση ότι δεν χρησιμοποιείται για κάτι άλλο)...;
Ανοίγουμε λοιπόν την SQL command line της XE και γράφουμε:
connect as sysdba ---για να συνδεθούμε
sys
password
shutdown immediately; ---για να κάνουμε dismount την βάση
startup restrict; ---για να ξεκινήσει σε restricted mode
alter database XE character set INTERNAL_USE EL8MSWIN1253; ---για να
γυρίσουμε με το ζόρι το collation :)
shutdown immediately; ---για να ξανακάνουμε dismount την βάση
startup;
Επειδή η oracle δεν πειράζει τα user tables, sys tables κλπ αν δεν
της κάνεις με το χέρι update, το μόνο πρόβλημα με το αυτό που μόλις
κάναμε ήταν ότι δεν θα παίζει το management studio στην 8080 που έχει
η oracle.
Κατά τα άλλα όπως το δοκίμασα και για όσα δοκίμασα φαίνεται να πάιζει
άψογα σε όλα του το Softone...
Φυσικά στον πελάτη προτάθηκε πιο συμβατική λύση...
Some Comments....
I would strongly recommend that you not use the INTERNAL_USE clause
unless Oracle support explicitly tells you to do so. As the name
implies, INTERNAL_USE is not properly documented and is not designed
to be used by customers in the field.
If this is a new database, you will be far better off doing a fresh
installation with the proper character set and deleting the existing
database. No reason to start the system off in an unsupported state.
To alll dba's who try to change the NLS_CHARACTERSET or
NLS_NCHAR_CHARACTERSET by updating props$ . This is NOT supported and
WILL corrupt your database. This is one of the best way's to destroy a
complete dataset. Oracle Support will TRY to help you out of this but
Oracle will NOT warrant that the data can be recoverd or recovered
data is correct. Most likely you WILL be asked to do a FULL export and
a COMPLETE rebuild of the database. To change the database
characterset please see Note 225912.1.
Regards,
Gunther
RDBMS NLS support
I. Tourountzis
Στην Oracle δεν υποστηρίζεται η αλλαγή του character set σε κατώτερο
character set, ώστε να γίνει συμβατό με αυτό το οποίο χρησιμοποιεί το
Softone.
Αν γνωρίζεται τρόπο να κάνετε το ίδιο χωρίς να φτιάξετε με το χέρι
(γιατί ούτε αυτό υποστηρίζεται από την XE) νέα βάση στο registry και
μετά να την κάνετε build και mount, πολύ θα ήθελα να μου τον
γνωστοποιήσετε να μάθω κι εγώ κάτι καινούργιο. Πιστέψτε με θα το
εκτιμήσω ιδιαιτέρως.
Περί update system παραμέτρων δεν αφορά τα παραπάνω αφού ούτως ή άλλως
δεν υποστηρίζεται update στις τελευταίες δύο εκδόσεις (όπως και
insert) χωρίς να θέλει rebuild η βάση, το full export δεν είναι
απαραίτητο.
Για το INTERNAL_USE προφανώς και δεν το βρήκα κάνοντας google change
collation on oracle..!
Όσον αφορά το αν η βάση θα είναι λειτουργική, η απάντηση είναι ότι ΝΑΙ
θα είναι και δεν θα παρουσιάσει κανένα πρόβλημα σε κανονική λειτουργία
αλλά ΔΕΝ μπορεί να γίνει Oracle update.
Ευχαριστώ...
humanum est errare
You will find them shipped with the full Release of the Database of
Oracle 10g/11g.
SHUTDOWN IMMEDIATE
BACKUP
STARTUP
CSSCAN
SHUTDOWN IMMEDIATE
STARTUP RESTRICT
CSALTER
SHUTDOWN IMMEDIATE
STARTUP
I tried with your environment and it works. :-)
Sorry if i was a little harsh with my comments before.
... σε εντελώς ακαδημαϊκό επίπεδο το backup πριν την CSALTER το έχει
προσθέσει ο συνάδελφος γιατί τα αποτελέσματα είναι μη αναστρέψιμα αν
κάτι πάει στραβά...
Οπότε αν είχαμε λοιπόν τα εργαλεία θα βάζαμε εκεί που λέει csscan ο
συνάδελφος κάτι της μορφής
CSSCAN /AS SYSDBA FULL=Y FROMCHAR=AL32UTF8 TOCHAR=EL8MSWIN1253;
για την ιστορία για αυτούς που δεν είναι τόσο εξοικιωμένοι με την
Oracle το csscan [character set scanner] στην ουσία, είανι αυτό που
ορίζει το τι θα κάνει μετά το @@CSALTER.PLB
και θα είχαμε λοιπόν ένα softone που τρέχει σε XE μη πειραματικά
πλέον...αφού κάνοντας την αλλαγή έτσι υπάρχει μόνο το όριο του
μεγέθους πλέον... XD
Η ισχύς εν τη ενώση λοιπόν