sql = "insert into user(id, username) values (?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
在JAVA程序中是可以的
为什么SQL语句:insert into user(id, username) values (?, ?)
这句我放在Oracle数据库中会提示无效字符呢

解决方案 »

  1.   

    楼主需要研究下SQL  和数据库无关
      

  2.   

    您老直接拿这sql到oracle上跑? 不给(?)设值?
      

  3.   

    insert into user(id, username) values (?, ?)
    这个你在oracle里面把问号改成你要添加的数值
      

  4.   

    insert into user(id, username) values (?, ?)
    直接在oracle的工具上run?给?号赋值~~~
      

  5.   

    user
    这个是关键字~~~!!!
    你加上""号、另外User要大写!
    USER
    看看行不行!
      如果不行、你最好把表名换了!
    最好不要用数据库的关键字!
      

  6.   

    LS高手们,我换一种说法吧,为啥在JAVA程序里不用给SQL赋值,在ORACLE里需要呢
      

  7.   

    lz不是吧!怎么能拿代码中的SQL直接往数据库中写了,我无语了!!!你把?换成具体的值吧!另外,如果是字符型,需要加“”,数值就不用!!!
      

  8.   

    LZ 看看错误提示,自己调试,@#¥%……&*(*&……%¥#@!
      

  9.   

    在JAVA里能跑  那你就要看看prepareStatement这个方法了  还有LZ  看看sql oracle基础  你就不会犯这样低级错误了 
      

  10.   

    呵呵,看了楼上的各位回答,估计楼主没找到理想的答案,看看我的猜测,我只能猜测,因为我也不知道是不是那么回事。比如在java中能跑,是不是因为不传值,然后程序会自动给了默认值,但直接在Oracle上跑的话,没有传值,而没有默认值,Oracle不会识别“?”是啥东东,啥类型,所以就报错了..
      

  11.   

    这个程序里的  不能放到oracle里运行吧 得把 问号换成值才能插入
      

  12.   


    JAVA程序里不是没有赋值,是已经赋值后才执行sql语句的,楼主应该先去学习JAVA基础和sql基础
      

  13.   


    这个就跟我之前的回帖的意思是一样的。就是说程序在把这段sql解释的时候,在没有给它明确的值时,程序会根据数据库中的字段的类型给这段sql赋了初始值,然后才在数据库中运行的,而如果直接把那段sql直接运行在Oracle中,就没有那个初始化的过程,所以会报错。这些是个人的浅见,如果不对,请各位牛人多多拍砖..