ORA-01756: 引用的字符串未正确终止
Posted
技术标签:
【中文标题】ORA-01756: 引用的字符串未正确终止【英文标题】:ORA-01756: quoted string not properly terminated 【发布时间】:2011-12-14 14:43:31 【问题描述】:我有这个错误,我大致知道它在哪里,但不知道如何纠正它。
错误信息:
“插入患者 1 值('System.Windows.Forms.TextBox, Text: 0001','M', '25-AUG-1991', 'Aaron', 'R', 'O'Neill', ' 6ft' , '11st' , '0664534334' , '0876543213' , '0001' , 'PAT', '有心脏病')"
这是我的代码:
string sql = "INSERT INTO Patients1 VALUES (" + TxtPatientId +"' ,'" + TxtGender.Text + "', '" + TxtDob.Text + "' , '" + TxtFName.Text + "' , '" +
TxtMName.Text + "' , '" + TxtLName.Text + "' , '" + TxtHeight.Text + "' , '" + TxtWeight.Text + "' , '" + TxtHomePh.Text +
"' , '" + TxtMobPhone.Text + "' , '" + TxtDocId.Text + "' , '" + TxtViewType.Text + "', '" +
TxtPDetails.Text + "')";
我认为我的错误来自第一个输入 (PatientId)。
我的数据库表如下所示:
CREATE TABLE Patient1
(Patient_id NUMBER(6) NOT NULL,
GENDER VARCHAR2(1) NOT NULL,
DATE_OF_BIRTH DATE,
PATIENT_FIRST_NAME VARCHAR2(9) NOT NULL,
PATIENT_MIDDLE_INITIAL VARCHAR2(1),
PATIENT_SURNAME VARCHAR2(9) NOT NULL,
HEIGHT NUMBER(3,2),
WEIGHT NUMBER(5,2),
HOME_PHONE NUMBER(10) NOT NULL,
MOBILE_PHONE NUMBER(10) NOT NULL,
DOCTOR_ID NUMBER(6) NOT NULL,
VIEWTYPE VARCHAR2(3) DEFAULT 'PAT',
OTHER_PATIENT_DETAILS VARCHAR2(50),
CONSTRAINT patients_pk PRIMARY KEY(Patient_id));
如有任何帮助,我们将不胜感激
【问题讨论】:
【参考方案1】:看起来您没有访问输入的.text
属性。此外,您还没有为VALUES
列表中的第一项打开单引号:
VALUES (" + TxtPatientId +"'
应该是:
VALUES ('" + TxtPatientId.text +"'
您没有在其他参数中转义单引号。 O'Neill
有一个引用,它打破了声明的其余部分。
有关使用绑定参数而不是串联字符串来构建查询的信息,请参阅@vc 74 的答案。
【讨论】:
谢谢你,我知道它在那个区域附近。盯着代码看太久会让你发疯。当它允许我时,我会接受这个答案。【参考方案2】:您需要通过将 O'Neill 中的单引号加倍来转义它 或在查询中使用bind parameters 而不是硬编码值
【讨论】:
以上是关于ORA-01756: 引用的字符串未正确终止的主要内容,如果未能解决你的问题,请参考以下文章