Sql 通过Oracle的Ms Access PassTour更改会话
我需要执行这个命令,如果我通过ADODB执行它,它将非常有效Sql 通过Oracle的Ms Access PassTour更改会话,sql,vba,oracle,ms-access,Sql,Vba,Oracle,Ms Access,我需要执行这个命令,如果我通过ADODB执行它,它将非常有效 ADOConn.Execute ("ALTER session set NLS_DATE_FORMAT=""DD.MM.YYYY"" ") 因为我需要连接来自不同系统的多个数据库,所以我切换到passTour查询,以便稍后连接它们。现在,我需要通过passTour查询更改日期格式,但这不起作用 ALTER session set NLS_DATE_FORMAT="DD.MM.YYYY" 我在执行select命令之前执行此命令。 我
ADOConn.Execute ("ALTER session set NLS_DATE_FORMAT=""DD.MM.YYYY"" ")
因为我需要连接来自不同系统的多个数据库,所以我切换到passTour查询,以便稍后连接它们。现在,我需要通过passTour查询更改日期格式,但这不起作用
ALTER session set NLS_DATE_FORMAT="DD.MM.YYYY"
我在执行select命令之前执行此命令。
我得到这个错误:
ODBC--call failed.
[ORACLE][ODBC][ORA]ORA-00922: missing or invalid option (#922)
我错过了什么?我试图弄乱引号,但没有成功。好吧,这样的命令只适用于给定的连接 所以你有这个:
ALTER session set NLS_DATE_FORMAT="DD.MM.YYYY";
SELECT * from tblHotels;
请注意,在一次传递查询中,我们有两个命令语句。我假设你也在做同样的事情?测试并尝试使用Oracle控制台,因为如果您发送的原始sql在Oracle控制台上/从Oracle控制台上不起作用,那么它肯定不会按照上述方式工作。因此,您可以(也应该)在一个pt查询中包含多个命令—我使用“;”作为命令分隔符—但使用对oracle有效的命令。因此,您必须通过oracle控制台让您的命令工作,然后将它们一个接一个地放到PT查询中
如果要单独执行命令,则如前所述,必须将returns records设置为false。但正如ntoed所说,设置会话只适用于一个PT查询,而不是每个发送的查询,因为每次执行PT查询时都使用新的连接和会话。因此,您可能必须在select命令之前包含date format命令。如前所述,您可以在单个PT查询中叠加并包含尽可能多的命令。因此,只需将“no count”和其他几个命令叠加起来,然后包括alter sessio,最后在单PT查询的at处,包含SELECT命令。< /P>是否在通过查询中设置返回记录属性为false?考虑避免会话变量,并用于处理日期显示:<代码>选择ToTyChar(SysDead,D.M.yyyy)作为Max DealDebug;<代码>