検索

質問
· 2024年8月12日

Error consultando foreign table en MySQL

¡Hola estimados miembros de la comunidad!

En esta ocasión no vengo con ningún artículo sino con un problema que me he encontrado al definir una conexión a una tabla ubicada en una base de datos externa en MySQL.

Estoy haciendo algunas pruebas con la funcionalidad de las Foreign Tables incluidas en IRIS que permite incluir tablas externas en modo consulta como si fueran propias de IRIS y he visto que funciona perfectamente con una tabla ubicada en PostgreSQL, el problema ha sido al intentar hacer lo mismo con una tabla de MySQL, he seguido los siguiente pasos como indica la documentación:

  • Paso 1: He creado la conexión a la base de datos de MySQL desde la configuración de SQL Gateway connection: **AVISO** si el nombre del fichero que contiene el driver es demasiado largo IRIS no podrá cargarlo.
  • Paso 2: He creado el Foreign Server:
    CREATE FOREIGN SERVER Test.MySQLDB FOREIGN DATA WRAPPER JDBC CONNECTION 'MySQL'
  • Paso 3: He creado la Foreign Table:
    CREATE FOREIGN TABLE Test.PatientMySQL SERVER Test.MySQLDB TABLE 'patient'
  • Paso 4: He lanzado al consulta a Test.PatientMySQL:
    SELECT * FROM Test.PatientMySQL

Y este ha sido el error:

[SQLCODE: <-230>:<Foreign table query Execute() failed>]

[%msg: <Foreign Tables - ERROR #8104: Gateway Exception: <GATEWAY> java.sql.SQLSyntaxErrorException com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:112) Remote database reported error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"patient" T1' at line 1>]

Como podéis ver, el problema son las dobles comillas que aparecen en el nombre de la tabla en la consulta que IRIS está ejecutando, MySQL es incapaz de reconocerlo y nos devuelve ese error. Por si acaso he revisado la versión de MySQL y el driver utilizado y ambas son la versión 9, así que no parece que sea eso.

¿Es un bug para MySQL? ¿He configurado algo erroneamente?

¡Gracias por adelantado!

1 Comment
ディスカッション (1)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2024年8月7日

InterSystems开发者社区中文版:中文社区最佳贡献奖公布(2024年7月)

Hi 开发者们,

2024年7月,我们开启了💡“中文社区最佳贡献奖”💡活动,截至目前,社区共有成员1900余人,7月新增成员46人。

🎉🎉🎉🎉获奖名单公布🎊🎊🎊🎊

在综合考虑了发帖量、评论等社区贡献后,我们宣布7月“中文社区最佳贡献奖”获得者为:

🆕新增成员 @y g

👍现有会员 @姚 鑫

恭喜两位,我们将寄出奖品:《AI医疗革命》。

 

为感谢大家的积极参与,鼓励更多社区成员积极贡献到社区建设中,我们还将为以下成员送上奖励:

🆕新增成员 @zhangchao  @biubiu biubiu 

👍现有成员 @deng hang  @liu bo 

🍀恭喜以上获奖成员,我们将寄出奖品:InterSystems开发者社区定制礼品一份🍀

🏆领奖须知🏆

请以上获奖成员及时通过站内信与 @Claire Zheng 沟通奖品领取事宜(截至2024年9月20 日)。

⏭接下来

我们的活动还在继续,将于9月初公布8月获奖名单!

🍀如果您对此次活动有任何疑问,欢迎跟帖提问!🍀

ディスカッション (0)2
続けるにはログインするか新規登録を行ってください
お知らせ
· 2024年8月7日

Do you use client-side editing in VS Code? If so, we want your feedback!

The VS Code extension development team is looking for beta testers to provide feedback on a proposed overhaul of the client-side editing workflow. The full list of changes can be found in the GitHub pull request description. Here are the highlights:

  • Support the use of client-side editing in any non-isfs workspace folder, not just folders in your local file system. For example, with VS Code Remote Development.
  • Create an index of all Classes, MAC and INT routines, and Include files inside non-isfs workspace folders. This will be used to determine the URI of classes and routines (for example, for Go To Definition).
  • Automatically sync all file changes, creations and deletions in client-side workspace folders with the connected server. This can be turned off using the new objectscript.syncLocalChanges setting. This new setting replaces the old objectscript.importOnSave setting, which is no longer needed. If objectscript.importOnSave was set to false, the extension will set objectscript.syncLocalChanges to false upon activation so no user migration is required.
  • Automatically show and hide the InterSystems Explorer and Projects Explorer views based on the folders in the workspace. InterSystems Explorer is only shown if there is at least one non-isfs workspace folder. Projects Explorer is only shown if there is at least one isfs folder. This replaces the objectscript.showExplorer setting.
  • Change the default value of the objectscript.explorer.alwaysShowServerCopy setting to true. The InterSystems Explorer should always show the server copy since the local copy can be opened from the files explorer.
  • Change the default value of the objectscript.autoAdjustName setting to false. Now that we have an index of the workspace, we no longer require that a document's name match the file path for the extensions to find it.
  • Cache the list of Studio Abstract Document extensions that are supported for each server connection so we can properly import them from client-side folders. Importing abstract documents is now independent of the objectscript.export settings, except for DFI’s which still check the export settings to preserve the current path-splitting behavior. Any file within a workspace folder that has a supported abstract document extension will be imported with the last part of the path used as the server name (except for DFI’s that match the export settings). For example, if the file path on disk is /src/other/example.ext, the server name will be example.ext.

In addition to general feedback on the changes, there are four design questions that have yet to be answered:

  1. Do any users want the InterSystems Explorer (NOT the default VS Code file explorer) to show the local copies of the documents? If not, the objectscript.explorer.alwaysShowServerCopy setting can be removed. EDIT: This setting will be retained for backwards compatibility.
  2. Do any users edit DFI files locally and have repositories that depend on the folder splitting behavior? If not, that special handling will be removed and DFIs will be treated like any other Abstract Document type. EDIT: This behavior will be retained for backwards compatibility, but newly exported DFI files will not be split into subfolders.
  3. Should the automatic deletion of files on the server when the local copy is deleted be guarded by a setting so users can disable it? EDIT: This is covered by the new objectscript.syncLocalChanges setting.
  4. This extension has a feature that will attempt to adjust the name of a class or routine when it's copied or moved to a new location within the workspace folder. This was implemented to help developers keep the file path and document name in sync. It can be turned off using the objectscript.autoAdjustName setting. Do users value this feature? Should the objectscript.autoAdjustName setting be set to false by default? Should this feature be removed entirely since the document index removes the need for the path to match the document name? EDIT: This setting's default has been changed to false.

Here's how you can share your feedback:

  1. Download the zip file at the end of this post and extract the vsix file contained within.
  2. Install the vsix file in VS Code using these directions, or by dragging the file from your file explorer into the Extensions view in VS Code.
  3. Follow your normal development workflow and try out some new features.
  4. Share your experience here, or on the GitHub pull request.

Thanks in advance for trying this out and we hope you like the changes!

vscode-objectscript-2.12.11-dev.1401.vsix.zip

35 Comments
ディスカッション (35)10
続けるにはログインするか新規登録を行ってください
記事
· 2024年8月5日 3m read

Onboarding con InterSystems IRIS: una guía completa

Actualizado 2/27/25

Hola Comunidad,

Podéis liberar todo el potencial de InterSystems IRIS—y ayudar a vuestro equipo a incorporarse—con toda la gama de recursos de aprendizaje de InterSystems que se ofrecen en línea y en persona, para cada función de vuestra organización. Desarrolladores, administradores de sistemas, analistas de datos e integradores pueden ponerse al día rápidamente.

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2024年8月4日

Convert IRIS DynamicArray to Python list

Hello Community,

How to convert the IRIS %DynamicArray into python list. I got " <THROW>TestDyncArray+1^MyLearn.Pyth.NewClass1.1 *%Exception.PythonException <PYTHON EXCEPTION> 246 <class 'AttributeError'>: <unknown exception data>" error when passing array values to python class.

ClassMethod TestDyncArray()
{
	Do ..DyncArrayInPy([1,2,3,4])
}

ClassMethod DyncArrayInPy(numbers) [ Language = python ]
{
	import iris
	print(type(numbers)) ;<class 'iris.%Library.DynamicArray'> need to be a <class 'list'>
	for num in numbers:
		print(num)
}

Thanks!

3 Comments
ディスカッション (3)1
続けるにはログインするか新規登録を行ってください