MSVCR100.DLL error launching SQL Developer 4.1.2 with JDK 8 on Windows 7

Environment: Windows 7 Enterprise SP1 64-bit, SQL Developer 4.1.2.20.64 with JDK 8 included.

Me again :-)

I recently faced an issue installing SQL Developer 4.1.2 on Windows 7, and it took me some time to find the solution, so I’m going to share it…

I downloaded version 4.1.2 of SQL Developer from http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html, I selected “Windows 64-bit with JDK 8 included” from the list.

I rarely have problems running or upgrading SQL Developer on Windows, but this time was a different experience. After extraction of the zip file to a new folder, I double-clicked “sqldeveloper.exe”, and (surprisingly!) the following error message appeared:

The program can’t start because MSVCR100.dll is missing from your computer. Try reinstalling the program to fix this problem.

MSVCR100DLL

Followed by:

Unable to launch the Java Virtual Machine located at path: …

MSVCR100DLLa

I was confused. The file MSVCR100.dll is part of the included Java Development Kit, so why wasn’t SQL Developer able to find it? I never had an issue like this with previous versions of SQL Developer (I always choose the version with included JDK to avoid Java issues like this one).

After some searches on Google, I found that someone suggested to copy the file MSVCR100.dll from the folder ..\jdk\jre\bin to ..\sqldeveloper\bin, so in my case from C:\sqldeveloper41\jdk\jre\bin to C:\sqldeveloper41\sqldeveloper\bin. Guess what? This worked! SQL Developer started, I could import my previous configuration and everything is looking good :-)

HTH,

Matthias

Advertisements

Installation of Oracle SQL Developer 3.2 64-bit on Windows 7 64-bit

Environment: Oracle SQL Developer 3.2.09 64-bit, Java 1.6.0_34 64-bit, Windows 7 64-bit

Oracle recently released version 3.2 of SQL Developer. This new version has some interesting new features, like the possibility to administer the APEX Listener, the option to connect to databases in the cloud, and an improved DB Diff wizard. To read more about the new features, check this page.

There are both 32-bit and 64-bit versions of the software. I will explain here how you can install the 64-bit version on Windows 7 64-bit.

1) Download and install 64-bit Java 6 JDK

The 64-bit version of SQL Developer does not include a Java Development Kit, but you need a Java 6 JDK to run it. If you don’t already have one on your system, you can download one here: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jdk-6u34-oth-JPR. I downloaded and installed jdk-6u34-windows-x64.exe, the 64-bit version of Java 6 Update 34 for Windows 64-bit.

2) Download and install 64-bit SQL Developer

If you have any previous versions of SQL Developer installed, do not remove them! You should only remove them after the new installation has finished successfully.

SQL Developer can be downloaded here: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html. You need the “Windows 64-bit” version.

After the download, extract the “sqldeveloper64-3.2.09.30-no-jre.zip” ZIP file to a temporary folder and then copy/move the folder “sqldeveloper64-3.2.09.30-no-jre” to C:\Program Files. This is where Windows 7 by default installs its 64-bit programs and I prefer to keep it that way.

Now start SQL Developer for the first time by right-clicking on “sqldeveloper.exe” inside the “sqldeveloper” folder. It will now ask for the path to your 64-bit java.exe. Browse to C:\Program Files\Java\jdk1.6.0_34\bin\java.exe. This is the Java 6 JDK that you installed in step 1.

If you have any previous installations of SQL Developer installed, the new version should now show them and you will be given the possibility to import an old configuration. Might be handy to keep your connections and stuff!

SQL Developer should now start up fine. You can check the version under Help -> About.

When you have verified that everything works fine, you are safe to remove any older versions that you should have.

 

Have fun,

Matthias

 

 

 

Problem with high ASCII characters in external tables with database character set AL32UTF8

Environment: Oracle 11.2.0.3.0 with AL32UTF8 character set, Windows 7, Oracle Linux 6.2 with UTF-8 locale.

After the migration of external tables from Oracle 10g with character set WE8MSWIN1252 to Oracle 11g with character set AL32UTF8, high ASCII characters like the degrees Celsius sign (°) showed up as upside down question marks in the web browser. The external tables are created on CSV text files which come from a Windows 7 PC and are uploaded on a Linux database server. Let’s try to simulate this problem and find a solution.

First, we need to create a directory to the /tmp folder and grant our user read and write access to that directory:

create directory tmp_dir as '/tmp';
grant read,write on directory tmp_dir to matthiash;

Next, create a text file called “high_ascii.csv” with these 2 lines in it:

This is the euro sign: €
This is the degrees Celsius sign: °

Put this file on the Linux server under /tmp.

We will now create an external table from the uploaded CSV file:

CREATE TABLE MATTHIASH.HIGH_ASCII_CSV_EXT
(
  HIGH_ASCII_TEXT   VARCHAR2(50)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY TMP_DIR
     ACCESS PARAMETERS
       ( RECORDS DELIMITED BY newline
       NOLOGFILE
       SKIP 0
  FIELDS TERMINATED BY ","  OPTIONALLY ENCLOSED BY '"' LRTRIM
  missing field values are null
  reject rows with all null fields
  (
    high_ascii_text)
                   )
     LOCATION (TMP_DIR:'high_ascii.csv')
  )
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;

We will now query the external table. This is from SQL Developer on Windows 7:

select * from MATTHIASH.HIGH_ASCII_CSV_EXT;
This is the euro sign: �
This is the degrees Celsius sign: �

You will notice that the euro sign and the degrees Celsius sign do not display correctly! I’m not sure what causes this translation problem. After all, shouldn’t Oracle be able to determine the character set of the CSV file and do the correct translation? Apparently not.

However, there is a solution. You can define the external table with the “CHARACTERSET” option. This parameter should match the character set of the text file that the external table is pointing to. In our case, the CSV files are created on Windows 7 with code page “1252 8-bit West European”, so the character set of the external table should be WE8MSWIN1252 (for a complete character set translation table between Oracle and Windows, see here).

Let’s recreate the external table:

DROP TABLE MATTHIASH.HIGH_ASCII_CSV_EXT;
CREATE TABLE MATTHIASH.HIGH_ASCII_CSV_EXT
(
  HIGH_ASCII_TEXT   VARCHAR2(50)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY TMP_DIR
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED BY newline CHARACTERSET WE8MSWIN1252
       NOLOGFILE
       SKIP 0
  FIELDS TERMINATED BY ","  OPTIONALLY ENCLOSED BY '"' LRTRIM 
  missing field values are null
  reject rows with all null fields
  (
    high_ascii_text)
                   )
     LOCATION (TMP_DIR:'high_ascii.csv')
  )
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;

When you now query the external table again, you should see the correct values for the high ASCII characters:

select * from MATTHIASH.HIGH_ASCII_CSV_EXT;
This is the euro sign: €
This is the degrees Celsius sign: °

 

Matthias

Changing the language of Oracle error messages in SQL Developer

Environment: SQL Developer 3.1.07, Windows 7

The regional format of my Windows 7 PC is set to “Dutch (Belgium)”. This means that some programs will display error or other messages in Dutch, which can be a problem when you need to look up information on the internet.

For example, I had the following Dutch error message in SQL Developer:

Error report:
ORA-06502: PL/SQL: numerieke fout of fout in waarde .
ORA-06512: in “SYS.OWA_UTIL”, regel 356
ORA-06512: in “APEX_040100.HTMLDB_UTIL”, regel 449
ORA-06512: in regel 2

To change this into another language, you need to modify the NLS “Language” setting in SQL Developer. You can do this from the “Tools” menu, then “Preferences”, “Database” and “NLS”. Change the language in the first drop down list (“Language”). Once you click “OK”, the changes take immediate effect. You don’t need to restart SQL Developer.

After the language change, this is how my error message now looks like:

Error report:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at “SYS.OWA_UTIL”, line 356
ORA-06512: at “APEX_040100.HTMLDB_UTIL”, line 449
ORA-06512: at line 2

 

Matthias

Enable non-root user access to shared folders on Oracle VM VirtualBox

Environment: Windows 7 64-bit (host), Oracle Linux 6.2 64-bit (guest), Oracle VM VirtualBox 4.1.10 with Guest Additions.

I recently installed Oracle Linux 6.2 on VM VirtualBox under Windows 7, and I decided to add a shared folder to C:\Temp, so I could exchange files between my Windows 7 host and the Oracle Linux guest.

This worked fine for user “root”: I could easily access the Windows files from my Linux installation through the folder /media/sf_Temp. However, whenever I tried to access the files with a non-root user (in my example: user “oracle”), all I got was a “Permission denied” message:

[oracle@ol6ora11g02 ~]$ cd /media/sf_Temp/
-bash: cd: /media/sf_Temp/: Permission denied

The solution for this problem is to add the user that needs access to the shared folder to the user group “vboxsf”:

[root@ol6ora11g02 ~]# usermod -a -G vboxsf oracle

Note: don’t forget the “-a” (append) option, otherwise you might remove all other groups from the user!

After this, I switched back to the user “oracle”, and I could easily access my shared folder:

[root@ol6ora11g02 ~]# su – oracle
[oracle@ol6ora11g02 ~]$ cd /media/sf_Temp/
[oracle@ol6ora11g02 sf_Temp]$ ls -la
total 340315
drwxrwx— 1 root vboxsf 8192 Mar 13 16:43 .
drwxr-xr-x. 3 root root 4096 Apr 4 14:36 ..
drwxrwx— 1 root vboxsf 0 Feb 27 11:19 apex_4.1
-rwxrwx— 1 root vboxsf 121601974 Sep 8 2011 apex_4.1.zip

 

Matthias

Enabling print screen for VM VirtualBox windows on Windows 7

I was trying to document a VM VirtualBox installation with screenshots, but I noticed that I couldn’t make screen shots of active VM VirtualBox windows using ALT-Print Screen. This is on Windows 7 64-bit, version of VirtualBox is 4.1.10.

I first thought there was something wrong with my keyboard or Windows settings, but making print screens of other windows DID work. Then I found this: http://superuser.com/questions/66353/print-screen-doesnt-work-if-virtualbox-is-active-window.

So, to enable print screens of active VirtualBox windows, you need to uncheck “Auto Capture Keyboard” under File -> Preferences -> Input. After this all worked fine!

 

Matthias