Oracle Developer Tools for Visual Studio .NET
Release Notes

This release of the Oracle Developer Tools for Visual Studio .NET now supports both Microsoft Visual Studio .NET 2003 and Visual Studio 2005. It also includes a tightly integrated PL/SQL debugger.The latest downloads, information, and community forums can be found here:http://www.oracle.com/technology/tech/dotnet/tools/index.html

Release 10.2.0.2.20

July 2006

Copyright (c) 2005, 2006, Oracle. All rights reserved.

This file contains important information about Oracle Developer Tools for Visual Studio .NET. The following topics are covered:

Support and Product Feedback

Oracle is very interested to hear your comments related to this release, including feature requests and bug reports. Please visit the Oracle Technology Network (OTN) community forums to tell us what you think!

ODT should only be installed in one Oracle home. If ODT is installed in multiple homes, and then one of them is subsequently deinstalled, any remaining installation of ODT will not work properly.

.NET Stored Procedures when Oracle Database and ODT are on same machine

If the Oracle Developer Tools for Visual Studio .NET and Oracle Database Extensions for .NET (an Oracle Database 10g database option) are installed on the same machine, you must install and configure Oracle Database Extensions for .NET version 10.2.0.2.20 (provided as part of the install you currently have) to be able to execute .NET stored procedures without errors.

4. Scroll down to the bottom of the page and check off the ODT Help box if it is not checked or uncheck it if it is checked.

5. Click Update VSCC button. Close and restart Visual Studio .NET
6. If you unchecked the ODT Help in step 4, repeat steps 1 to 5 to check off ODT Help on the VSCC page.

Configuring PL/SQL debugging for first use

Please see the online help for information detailing what configuration steps are required before PL/SQL debugging is possible. This includes the following database side configurations:

The database must be an Oracle database release 9.2 or later.

Requirements for Oracle Database 10g Release 1 (10.1) and later:

The connected user must have the DEBUG CONNECT SESSION privilege to connect to a debugger, for example, GRANT DEBUG CONNECT SESSION TO HR.

The connected user must have the DEBUG ANY PROCEDURE privilege to debug any PL/SQL program or have DEBUG and EXECUTE privileges on the PL/SQL program being debugged, for example, GRANT DEBUG ANY PROCEDURE TO HR.

Requirements for Oracle9i Release 2 (9.2):

The connected user must have the DEBUG ANY PROCEDURE privilege, for example, GRANT DEBUG ANY PROCEDURE TO HR.

Oracle connection errors after installing Oracle Developer Tools in new Oracle home

If you start receiving Oracle connection errors immediately after installing Oracle Developer Tools, check to see if you created a new Oracle home during the install. If you did, you will need to copy over the TNSNAMES.ORA file from your old Oracle home to the new one.

Do not install Oracle Developer Tools into an Oracle8, Oracle9, or Oracle 10.1 Oracle Home

Installing the Oracle Developer Tools into an Oracle8, Oracle9, or Oracle 10.1 Oracle home is not supported. By default, the Oracle Installer will create a new Oracle 10.2 Oracle home.

Local Database option may not be visible from connection dialog drop down list

In order for a locally installed database to show up as a "Local Database" in the connection dialog box, Oracle Developer Tools must be installed in the same Oracle Home as the database. If the tools are installed in a separate Oracle home from the database, the Oracle NET Configuration assistant will need to be used to create an alias for the database.

To Deinstall, run Setup.exe, or use Oracle Universal Installer

This installation does not install the Oracle Universal Installer. If you have already installed the Universal Installer as part of some other product, you may run it from the Programs menu and choose "Deinstall products." Otherwise, run the Setup.exe that was provided with this installation and choose "Deinstall products."

Japanese Online Help

The translated Japanese online help includes 2 manuals which were not translated:
Oracle Database Extensions for .NET and
Oracle Error Messages.

Features not Covered by Documentation

PL/SQL Debugger troubleshooting

There are several scenarios where the database is not able to connect to the PL/SQL debugger:

The connected user does not have the appropriate debug privilege to connect to the debugger. In this scenario, you will get the following message from ODT:

"An error occurred while executing the procedure/function:

ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1"

To solve the problem, do the following:

1. Grant the "debug connect privilege" (for 10g databases) to the connected user.
2. Grant the "debug" and "execute" privilege on the PL/SQL program to the connected user, or
3. Grant the "debug any procedure" privilege to the connected user.

There are no available ports for PL/SQL Debugging.

In this scenario, you will get the following message from ODT: "Could not begin PL/SQL debugging. There are no available ports".
To solve the problem, you have to modify the PL/SQL Debugging Options page to add the ports for debugging.

Please note: a port number randomly selected from the range specified in the ODT Debugging options page is reserved at the moment that the Oracle Application Debugging menu option is checked off. However, the specific port number reserved by the debugger is not displayed to the user in the Output window until PL/SQL debugging begins. If this port is attempted to be used by another application it will be unavailable.

The debugging port is not open for external access. This usually happens if the database connection is remote.

In this scenario, you will get the following message from ODT:
"An error occurred while executing the procedure/function:
ORA-30683: failure establishing connection to debugger
ORA-12535: TNS:operation timed out
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1"

To solve the problem, make sure all the ports set in the PL/SQL Debugging Options page can be opened for external access.

Preview SQL

The "Preview SQL" button on the various object designers shows the SQL that will be executed on the database to create or modify that object. It is often possible that there is not yet any SQL to execute and therefore a blank box is displayed.

PL/SQL Code Editor

Pressing F1 in the task list (Visual Studio .NET 2003), or error list (Visual Studio 2005) will provide help for the Oracle error number

Oracle Query Window

All SQL is committed immediately. "Commit" and "Rollback" commands are accepted but have no effect.

Every line in a SQL script will be committed immediately. Existing SQL Scripts that contain "commit" and rollback" statements should be modified if necessary to take this into account.

User must specify a full path the first time a script is run using the "@" directive (eg @c:\mydir\myfile.sql). After that, the path becomes the working directory and no path is required (eg @myfile.sql).

Scripts can be nested. For example, myfile.sql can contain a line that reads "@myotherfile.sql."

Known Issues

Visual Studio 2005 Express Edition does not allow "add-ins" so it is not possible to use ODT with it. Visual Studio .NET 2002 is not supported.

DataSet generation problems with OracleDataAdapter for Web Site projects in Visual Studio 2005

The version of Visual Studio 2005 that is shipped does not contain C# ASP.NET Web Application project types, and users typically use Web Site projects to create solutions. However, these Web Site projects have the caveat that once the OracleDataAdapter has been dragged into the component designer the code generation for the corresponding DataSet does not work properly. Microsoft provides a patch to Visual Studio 2005 that will make all ASP.NET Web Application projects available. Once developers use these ASP.NET Web Application project types the DataSet code generation will work exactly as it did in Visual Studio .NET 2003.

For application and external application debugging, the Debug Location toolbar does not show the Oracle debugger process if the debugging tier is in the database tier.

The OracleDebugger.exe process is not always able to terminate successfully and multiple copies may accumulate which may need to be killed manually to free up resources.

Triggers might not be able to be debugged correctly in certain cases:
You cannot debug a trigger correctly when
1. The trigger contains blank lines or line with only comment and
2. when the database has been restarted after the trigger is created.
To workaround the problem, the trigger can not contain blank lines or any line with only comments on it.

When debugging a PL/SQL program that invokes a .NET Stored procedure, you might encounter Ora-03113: end of communication channel. When this happens, the debug connection is lost and debugging will not be possible to proceed normally. You will need to stop and restart the PL/SQL debugger.

For types that the debugger are not able to evaluate (eg. object types that does not compile with debug information), or are not supported, the type will be shown as OPAQUE type in the Watch, Quick Watch or Local window.

Debugging a PL/SQL program that contains VARRAY or NESTED TABLE types as local variables or parameters is supported only with database versions 9.2.0.7 or higher.

ODT and Visual Studio 2005 known issues

In the New Project dialog, Oracle Project can be located directly under the Visual C#, or Visual Basic categories. It cannot be located under subcategories, such as Windows, or Database.

F1 help is not supported in deploy options and deploy mapping property pages. Help can be located in the Oracle Developer Tools for Visual Studio .NET book, in the online help.

When changes are made to the deploy options and deploy mapping properties, "*" does not appear next to the property page name.

In the deploy options and deploy mapping property pages, using tab to move from one control to another is not supported.

If the property designer is open, then any changes made in code to .NET stored procedures, or any changes in the Oracle Deployment Wizard for .NET, will not be reflected in the property designer. The workaround is to close the property designer, and reopen it.

Creating a new project configuration from an existing project configuration is not supported.

User defined datatypes created after opening a connection to the database

After a connection to the database is opened using Oracle Explorer in Visual Studio .NET, if a new user defined datatype is created in the database, i.e. VARRAY, NESTED TABLE, or OBJECT, it will not be visible to the PL/SQL wizards unless the connection node is refreshed. To achieve this, go to the connection node in Oracle Explorer, right click, and choose refresh from the menu.

Some of the PL/SQL data types (such as NATURAL or INTEGER) are aliases to database native types (for example, NUMBER). When these PL/SQL types (NATURAL, INTEGER) are used as parameter types in stored procedure or function, the PL/SQL data type displayed in the properties window for these parameters will reflect the database native type.

PL/SQL autocompletion with synonyms

In a PL/SQL editor window, synonyms nested beyond 2 levels will not expand for autocompletion.

Connecting with SYSOPER role

Connecting with SYSOPER role is not supported.
Case sensitivity and special characters in name

To preserve the case in a name for a schema object, the name needs to enclosed in double quotes. Otherwise, when the focus is moved out of the text box where the schema object name is entered the schema object name will be automatically uppercased.

Retrieving table or view data

When retrieving data from a table or view, display or editing of data for the following Oracle types are not supported:

CLOB, BLOB, BFILE – read only

User Defined Types, Nested Table, VARRAY – not displayed

XMLType columns and parameters not supported with 9.0.x database

Using XMLType columns or parameters with 9.0.x database is not supported.

Table/View Designer

Creating a non-schema based XMLType table using Table Designer is not supported.

Committed storage parameter values appear as empty when information is not available from the database.

Running stored procedure or function

Running a stored procedure or function that returns a null value for an output parameter of SYS_REFCURSOR datatype is not supported.

Running a stored procedure or function with SYS_REFCURSOR as IN or IN-OUT parameter is not supported.

When running a stored procedure or function, for input parameters, a <DEFAULT> value is listed in the combobox even though the procedure/function may not have a default value defined for that parameter. Selecting <DEFAULT> as the parameter value in this scenario is not supported.

OracleDataAdapterWizard

When the OracleDataAdapter wizard for an OracleDataAdapter component is launched more than once, the parameter information may not be populated correctly. To work around this issue, reselect the stored procedure or select statement in the wizard.

In the OracleDataAdapter wizard, the parameter information displayed for a stored procedure is not always in sync with the stored procedure selected. To workaround this issue, select the stored procedure a few times.

In the OracleDataAdapter wizard, previewing results for stored procedures or SQL statements with IN or IN-OUT parameters is not supported.

In the OracleDataAdapter wizard, to auto-generate insert/update/delete statements, the SQL statement should include the primary key or a rowid in the selection list.

Oracle Project

The available methods in the Deploy Mapping property page are determined by the current configuration, not the configuration that is selected in the Property Pages Dialog. Use of constants to specify which methods to include in the code should be avoided, if possible.

The Deploy Mapping property page does not support methods with parameters of type
System.Byte[].

Automation is not supported.

There is no Oracle-specific F1 or dynamic help for the Oracle Projects in Solution Explorer.

If changes are applied in the Deploy Options, or Deploy Mapping property pages, and the project file is in source control, then the project must be checked out first. If the checkout operation is cancelled when prompted to checkout the project file, then the property page changes will be rolled back because changes cannot be made if the project file is not checked out. However, there will not be any message box indicating what happened.

When the Oracle Deployment Wizard for .NET completes, and the project is in source control, then there may be a message indicating the project is being edited during a build. This warning is expected, and the edit should be allowed. Selections in the wizard need to be saved to the project file.The same problem also happens when building an Oracle Project for VB.NET after renaming the root namespace since the root namespace used for the build needs to be saved to the project file.

Enterprise Templates are not supported with Oracle Project.

Oracle .NET Deployment Wizard

Resizing the data grid in the Parameter Type Mapping dialog may not work as expected.

When an assembly built in debug configuration is deployed, the associated .pdb file is not copied over to the database.

An error may occur when copying assemblies during a deployment because Oracle Database Extensions for .NET may not unload the assemblies on the Oracle Database from a previous deployment after a .NET Stored Procedure has been executed.
If this happens, the <OracleHome>ClrAgent service needs to be stopped, the extproc.exe process killed, and the <OracleHome>ClrAgent re-started.
This affects the primary assembly being deployed, as well as the referenced assemblies.

When deploying an assembly from a machine with non-English locale, the user may sometimes be prompted to enter the location of the mscorlib.resources dll. The user can either specify the new location or click Cancel and the assembly deployment will continue without any errors.

.NET Assemblies Node, and .NET Assembly Nodes

In the online documentation for .NET Assemblies Node, it says that SYS must be selected as an "available schema in Apply Filters" to be able to view the .NET Assembly Nodes. It should say "displayed schema", not "available schema".
Oracle Query Window

UDT output is not supported.

SQL statements which are blocked due to row locking cannot be canceled.

Variable binding is not supported.

It is not possible to use dbms_output.put_line more than 1024 times in a PL/SQL block.