Heim Datenbank MySQL-Tutorial Java调用Oracle存储过程传入数组参数的方法

Java调用Oracle存储过程传入数组参数的方法

Jun 07, 2016 pm 03:32 PM
java oracle 参数 存储 数组 调用 过程

Java调用Oracle存储过程传入数组参数的方法 周四的时候,修改我们系统的代码,应另外一个公司的要求,要修改我们系统调用他们公司的提供的存储过程的调用方式。修改前,是通过配置的数据库用户名和密码直接访问到他们的数据库,再调用存储过程;现在要修改成

Java调用Oracle存储过程传入数组参数的方法

周四的时候,修改我们系统的代码,应另外一个公司的要求,要修改我们系统调用他们公司的提供的存储过程的调用方式。修改前,是通过配置的数据库用户名和密码直接访问到他们的数据库,再调用存储过程;现在要修改成从我们的数据库中直接访问他们授权的存储过程。以前之所以通过用户名密码访问他们的数据库后再调用,是因为储过程的一个输入参数是数组类型的,传递数组参数的时候,Connection的类型一定要是OracleConnection的,当时只知道使用用户名密码直接通过JDBC访问Oracle,获取连接,再传递参数进去是没有问题的,其他的方式试了下不行,时间紧,也就没去折腾。正好这次又要改,而且不允许直接JDBC访问拿Connection了,系统部署在WebLogic上,必须从WebLogic的连接池中获取连接。
Java向Oracle传递数组参数的方法:

ArrayDescriptor arraydesc = ArrayDescriptor.createDescriptor(sql_type_name, connection); //sql_type_name 是Oracle数据库中定义的数组类型的名称
ARRAY array = new ARRAY(arraydesc, connection, elements); //elements是Java数组类型的对象
Nach dem Login kopieren

 

这里的array对象,就可以在调用存储过程时作为数组参数传入。需注意的是,connection必须是Native Connection,如果connection是通过JDBC建立数据库连接并获取的,就不会有问题,但是如果是通过JNDI数据源获取的,就不行,因为从数据源获取的Connection是Native Connection的代理类,比如Tomcat中通过配置的JNDI数据源获取连接,连接类型是org.apache.commons.dbcp.PoolableConnection类型的;在WebLogic、JBoss等其他服务器中,得到的Connection类型又是不同的。

通过JNDI数据源获取连接的情况下,需要对获取到的连接进行一定的处理,获取到Native Connection。

如果项目中使用了Spring,那么,在使用JNDI数据源获取数据库连接的情况下,可以方便地通过Spring的NativeJdbcExtractor获取Native Connection。Spring中所包含的NativeJdbcExtractor实现有:C3P0NativeJdbcExtractor、CommonsDbcpNativeJdbcExtractor、JBossNativeJdbcExtractor、NativeJdbcExtractor、SimpleNativeJdbcExtractor、WebLogicNativeJdbcExtractor、WebSphereNativeJdbcExtractor、XAPoolNativeJdbcExtractor,根据应用部署环境的不同选择相应的NativeJdbcExtractor实现。

如果项目中没有使用Spring呢,大家可以去下载Spring的源码,找找这几个NativeJdbcExtractor的代码,参考一下就OK啦。 开源就是好嘛!

在成功获得Native Connection后,运行代码,却没有出现预期的成功调用的结果,而是抛出如下异常:
java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot be cast to oracle.jdbc.OracleConnection
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:149)
at oracle.sql.ArrayDescriptor.createDescriptor(ArrayDescriptor.java:115)
搞到这里,我就糊涂了,我拿到了Native Connection了啊,你还要我怎样啊……心里那个郁闷啊……

郁闷归郁闷,还得抓点紧解决问题不是,结果又是一顿狂搜,还行,最终找到了解决方案:
部署环境下,删除WEB-INF/lib目录下的Oracle数据库驱动!
删除完毕,程序跑起来,果然这个异常没了……真TMD的不容易啊……感觉技术方面还是比较菜,需要多学习……

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verschlüsseln Sie die Oracle -Ansicht So verschlüsseln Sie die Oracle -Ansicht Apr 11, 2025 pm 08:30 PM

Mit der Verschlüsselung von Oracle View können Sie Daten in der Ansicht verschlüsseln und so die Sicherheit sensibler Informationen verbessern. Die Schritte umfassen: 1) Erstellen des Master -Verschlüsselungsschlüssels (MEK); 2) Erstellen einer verschlüsselten Ansicht, der Ansicht und der Verschlüsselung der Ansicht und der MEK angeben; 3) Benutzern Sie die Benutzer, auf die verschlüsselte Ansicht zuzugreifen. Wie verschlüsselte Ansichten funktionieren: Wenn ein Benutzer nach einer verschlüsselten Ansicht nachgefragt wird, verwendet Oracle MEK, um Daten zu entschlüsseln und sicherzustellen, dass nur autorisierte Benutzer auf lesbare Daten zugreifen können.

Wie man die Oracle -Installation deinstalliert Wie man die Oracle -Installation deinstalliert Apr 11, 2025 pm 08:24 PM

Deinstallieren Sie die Methode für Oracle -Installationsfehler: Schließen Sie den Oracle -Service, löschen Sie Oracle -Programmdateien und Registrierungsschlüssel, Deinstallieren Sie Oracle -Umgebungsvariablen und starten Sie den Computer neu. Wenn das Deinstall fehlschlägt, können Sie das Oracle Universal Deinstall -Tool manuell deinstallieren.

PHP vs. Python: Kernmerkmale und Funktionen PHP vs. Python: Kernmerkmale und Funktionen Apr 13, 2025 am 12:16 AM

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP: Die Grundlage vieler Websites PHP: Die Grundlage vieler Websites Apr 13, 2025 am 12:07 AM

Die Gründe, warum PHP für viele Websites der bevorzugte Technologie -Stack ist, umfassen die Benutzerfreundlichkeit, die starke Unterstützung der Community und die weit verbreitete Verwendung. 1) Einfach zu erlernen und zu bedienen, geeignet für Anfänger. 2) eine riesige Entwicklergemeinschaft und eine reichhaltige Ressourcen haben. 3) in WordPress, Drupal und anderen Plattformen häufig verwendet. 4) Integrieren Sie eng in Webserver, um die Entwicklung der Entwicklung zu vereinfachen.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

So richten Sie Benutzer von Oracle ein So richten Sie Benutzer von Oracle ein Apr 11, 2025 pm 08:21 PM

Befolgen Sie die folgenden Schritte, um einen Benutzer in Oracle zu erstellen: Erstellen Sie einen neuen Benutzer mit der Erstellung der Benutzeranweisung. Gewähren Sie die erforderlichen Berechtigungen mit der Zuschusserklärung. Optional: Verwenden Sie die Ressourcenanweisung, um das Kontingent festzulegen. Konfigurieren Sie andere Optionen wie Standardrollen und temporäre Tabellenspaces.

So überprüfen Sie ungültige Nummern von Oracle So überprüfen Sie ungültige Nummern von Oracle Apr 11, 2025 pm 08:27 PM

Oracle Ungültige numerische Fehler können durch Fehlpaarung des Datentyps, numerische Überlauf, Datenkonvertierungsfehler oder Datenbeschäftigung verursacht werden. Zu den Schritten zur Fehlerbehebung gehören das Überprüfen von Datentypen, das Erkennen digitaler Überläufe, das Überprüfen von Datenkonvertierungen, das Überprüfen der Datenbeschädigung und das Erforschen anderer möglicher Lösungen wie das Konfigurieren des Parameters nls_numeric_characters und das Aktivieren der Datenüberprüfungs -Protokollierung.

Php gegen andere Sprachen: Ein Vergleich Php gegen andere Sprachen: Ein Vergleich Apr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

See all articles