我想通过一个sql语句创建一个表,但不成功
在 oracle 的 sql/plus 执行如下语句是成功的:
create table trytable1("序号" int NOT NULL, 
"姓名" char(8) NULL, 
CONSTRAINT "TABLE_KEY1" PRIMARY KEY ("序号")) 
tablespace users;
但在 ado 中不成功: HRESULT hr;
_bstr_t strSql;
strSql = "create table trytable1(\"序号\" int NOT NULL, \
\"姓名\" char(8) NULL, \
CONSTRAINT \"TABLE_KEY1\" PRIMARY KEY (\"序号\")) \
  tablespace users; "; _variant_t RecordsAffected;
try
{
hr = m_pConnection->Execute((_bstr_t)strSql, &RecordsAffected, adCmdText);
}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return FALSE;
}strSql换成如下也不行:
strSql = "create table trytable1('序号' int NOT NULL, \
'姓名' char(8) NULL, \
CONSTRAINT 'TABLE_KEY1' PRIMARY KEY ('序号')) \
  tablespace users; ";这个sql我该怎么写呢?

解决方案 »

  1.   


    可能是换行的问题
    黑色字体已经不是字符串了
    CONSTRAINT \
    tablespace users;
      

  2.   

    1。sql写在一行。
    2。create之前如果该表存在,先drop它。
      

  3.   

    看见这个帖子,今天想到在项目中遇到的一个问题,请大家帮助一下。
    先声明一下我是做java的。今天我的一个同事(做c的),在想oracle数据库中插入数据时比如:
    insert into t values(name);--name是varchar2,
    她在程序(c语言)中定义了一个char的字符,并把该字符插入到上表中,报错,说是错误的数据类型。
    我找到了问题的原因,就是在插入是她插入的值(name字段对应的值)没有加单引号,数据库提示错误。
    请问是否能够在c中定义一个像java一样的字符串呀?
    我以前也弄过c,不过很久没有弄了,一些东西忘记了。