Skip to main content

Hi there,

I need to get the MySQL db name I'm connected to.

MySQL command below gets pre-compiler error, "Incorrect SQL statement syntax near: database".

exec sql select database() into :aName from aTable end-exec.

'Select schema()...' gets same error, while 'select whatever()...' is fine.

Seems to be a reserved word problem?  How to solve?

Thanks,

Linden

 

Hi there,

I need to get the MySQL db name I'm connected to.

MySQL command below gets pre-compiler error, "Incorrect SQL statement syntax near: database".

exec sql select database() into :aName from aTable end-exec.

'Select schema()...' gets same error, while 'select whatever()...' is fine.

Seems to be a reserved word problem?  How to solve?

Thanks,

Linden

 

Hi Linden,

I suggest you contact customer support and request an RPI to get this fixed. We just need to make 'database' usable as a function name as well as a reserved word for some SQL dialects.

In the meantime, you can use dynamic SQL to do what you want, as follows:

$set sql(behavior=optimized)
working-storage section.

exec sql include sqlca end-exec.

01 dbname pic x(32).

01 dsqlText pic x(100) value "select database()".

procedure division.

exec sql
connect to MySQL
user myUserId.myPassword
end-exec

exec sql declare c cursor for dsql end-exec
exec sql prepare dsql from :dsqlText end-exec
exec sql open c end-exec
exec sql fetch c into :dbname end-exec
exec sql close c end-exec
display "Default database is " dbname

exec sql disconnect end-exec

goback.

Hope this helps,

Chris

Hi there,

I need to get the MySQL db name I'm connected to.

MySQL command below gets pre-compiler error, "Incorrect SQL statement syntax near: database".

exec sql select database() into :aName from aTable end-exec.

'Select schema()...' gets same error, while 'select whatever()...' is fine.

Seems to be a reserved word problem?  How to solve?

Thanks,

Linden

 

Thanks Chris,
I have reported it but TBH I'm happy to use the cursor approach you've kindly provided here. Works fine.