Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

inserting µ sign problem - works except in Perl

590726Apr 4 2011 — edited Apr 4 2011
I am trying to insert a mu sign (µ) into a varchar2, and this almost works.

Database: 10g
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CHARACTERSET WE8ISO8859P15
NLS_NCHAR_CHARACTERSET AL16UTF16

When I run
insert into lab_measurements values (136, 'test', 13.37, 'µmol/L', null);
select * from lab_measurements where parameter = 'test';
from SqlDeveloper, it works fine.

When I run it from SqlPlus, with NLS_LANG set to AMERICAN_AMERICA.AL32UTF8, it also works.

When I run it from Perl through DBI and DBD::Oracle, I get an inverted question mark (¿) instead of the mu character.
I don't understand why though, as DBI uses the same NLS_LANG as SqlPlus (both are run from the same system and session).

Am I doing something wrong here? Why doesn't it work in Perl?

Comments

BryanWood
You need to disable disk locking, which ordinarily is performed by the first VM to prevent any other VMs from corrupting your vmdk files via uncoordinated writes. You will have to shutdown both of your VMs and edit the *.vmx flat file for each, adding lines like the following (settings taken from workstation 6, but should be nearly identical settings for VM Player 3.x):

http://crosbysite.blogspot.com/2007/10/clustering-in-vmware-workstation-6.html

scsi1.sharedbus = "Virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

A few comments:

- your shared disks (scsi1) must be on a separate virtual scsi bus than the boot disk (scsi0), to allow setting the sharedbus flag as seen above.
- you must also ensure the cache parameters and unsynced writes settings are set to guarantee that all IO is immediately flushed to the vmdk file so the other VM can immediately access the latest version of data.
user8860348
Folks,

Hello. Thanks a lot for replying.

Because 2 Virtual Machines rac1 and rac2 share the same disk F:\VM_RAC\sharerac\asm1.vmdk and cause the problem, can we have rac1 and rac2 use different disks ?

For example,
Let rac1 uses disk F:\VM_RAC\sharerac\asm1.vmdk
Let rac2 uses disk F:\VM_RAC\sharerac\asm2.vmdk

If yes, how to have rac1 use asm1.vmdk and rac2 uses asm2.vmdk ?
BryanWood
Answer
Unfortunately no, Oracle RAC requires all nodes have access the same set of shared disks. If your database resides within ASM, each ASM instance (one per node) must also see the same set of disks to mount the ASM diskgroup containing the database's datafiles.

Best Regards,
Bryan Wood
Marked as Answer by user8860348 · Sep 27 2020
user8860348
Folks,

Hello. thanks a lot for replying.
I have edited the VMX files for rac1 and rac2. Both VMs can open at the same time now. Thanks again.
1 - 4
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on May 2 2011
Added on Apr 4 2011
3 comments
412 views