vb中我定义了一个函数ExecuteSQLORA 如下:
Public Function ExecuteSQLORA(strSQL As String) As Object
Dim OraSession As Object
'定义OraSession和OraDatabase为OLE对象
Dim OraDatabase As Object
'创建一个OraSession对象
Set objSession = CreateObject("OracleInProcServer.XOraSession")
'通过打开一个对Oracle的连接创建数据库对象
Set objDatabase = objSession.OpenDatabase("myoracle", "cgsys/cgsys", 0)
Set oraDynaSet = objDatabase.DBCreateDynaset(strSQL, 0)
Set ExecuteSQLORA = oraDynaSet
End Function
我拼装了一个字符串:
SQL="INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 1,4874277,'销售公司',77.98,22.1,55.88,'200807141617');
INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 3,1411010,'销售公司',75.3,19.8,55.5,'200807141621');
INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 4,4833525,'销售公司',77.12,22,55.12,'200807141622'); "
然后将该字符串传递给函数ExecuteSQLORA(SQL),结果出现错误:实时错误'440'
SQL execution error,ORA-00911:invalid character我原以为是sql语句有问题,结果我到oracle数据库中执行该sql语句,没有问题,请问这是怎么回事?
Public Function ExecuteSQLORA(strSQL As String) As Object
Dim OraSession As Object
'定义OraSession和OraDatabase为OLE对象
Dim OraDatabase As Object
'创建一个OraSession对象
Set objSession = CreateObject("OracleInProcServer.XOraSession")
'通过打开一个对Oracle的连接创建数据库对象
Set objDatabase = objSession.OpenDatabase("myoracle", "cgsys/cgsys", 0)
Set oraDynaSet = objDatabase.DBCreateDynaset(strSQL, 0)
Set ExecuteSQLORA = oraDynaSet
End Function
我拼装了一个字符串:
SQL="INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 1,4874277,'销售公司',77.98,22.1,55.88,'200807141617');
INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 3,1411010,'销售公司',75.3,19.8,55.5,'200807141621');
INSERT INTO TRAIN_INFO_T(ID,TRAIN_NO,SUPPLY_UNIT,MAO_WEIGHT,PI_WEIGHT,JING_WEIGHT,MAO_TIME) VALUES ( 4,4833525,'销售公司',77.12,22,55.12,'200807141622'); "
然后将该字符串传递给函数ExecuteSQLORA(SQL),结果出现错误:实时错误'440'
SQL execution error,ORA-00911:invalid character我原以为是sql语句有问题,结果我到oracle数据库中执行该sql语句,没有问题,请问这是怎么回事?
能否详细一点
Cause: identifiers may not start with any ASCII character other than letters and numbers. $#_ are also allowed after the first character. Identifiers enclosed by doublequotes may contain any character other than a doublequote. Alternative quotes (q'#...#') cannot use spaces, tabs, or carriage returns as delimiters. For all other contexts, consult the SQL Language Reference Manual.
Action: none
测试时,把汉字先换成字符串试试,应该可以!
反正java是可以的。用批处理。