我想通过一个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我该怎么写呢?
在 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我该怎么写呢?
可能是换行的问题
黑色字体已经不是字符串了
CONSTRAINT \
tablespace users;
2。create之前如果该表存在,先drop它。
先声明一下我是做java的。今天我的一个同事(做c的),在想oracle数据库中插入数据时比如:
insert into t values(name);--name是varchar2,
她在程序(c语言)中定义了一个char的字符,并把该字符插入到上表中,报错,说是错误的数据类型。
我找到了问题的原因,就是在插入是她插入的值(name字段对应的值)没有加单引号,数据库提示错误。
请问是否能够在c中定义一个像java一样的字符串呀?
我以前也弄过c,不过很久没有弄了,一些东西忘记了。