我是SQL的新手,我想创建一个表。有时我成功创建表,有时失败。帮帮我,我找不到失败的地方。我总是收到此错误消息
import React, { useEffect, useState } from "react";
import * as d3 from "d3";
const SvgViewer = ({ nodesData, svgFilePath }) => {
const [svgContainer, setSvgContainer] = useState(undefined);
const showNodesOnSvg = nodes => {
//this.setState({ objectLoading: false });
//let nodesData = UnitMonitor.state.nodes;
let svgDoc = svgContainer.contentDocument;
let gTags = svgDoc.querySelectorAll("svg > g");
let container = null;
if (gTags.length > 1) container = svgDoc.querySelector("g:nth-of-type(2)");
else container = svgDoc.querySelector("g:nth-of-type(1)");
let node = d3.select(container);
nodesData.forEach(nodeData => {
node
.append("text")
.attr("id", "node" + nodeData["id"])
.attr("fill", "white")
.attr("text-anchor", "middle")
.attr("x", nodeData["positionX"])
.attr("y", nodeData["positionY"])
.attr("class", "clickable-node")
.style("font-size", "8px")
.style("position", "absolute")
.style("cursor", "pointer")
.style("display", "inline-block")
.on("click", function() {
clickHandler(nodeData["id"]);
})
.text("N/A" + " " + nodeData["symbol"]);
let nodeCreated = d3.select(
svgDoc.getElementById("node" + nodeData["id"])
);
nodeCreated
.append("title")
.attr("id", "title" + nodeData["id"])
.text(" " + nodeData["tagCode"]);
});
};
const clickHandler = nodeID => {
History.ModalHistoryShow(nodeID); // i need call ModalHistoryShow() this way
};
useEffect(() => {
const svg = document.querySelector("#svgobject");
setSvgContainer(svg);
svg.onload = () => {
if (nodesData != null) {
showNodesOnSvg();
}
};
});
return (
<div className="unit-schema-container1" key={svgFilePath}>
<object id="svgobject" type="image/svg+xml" data={svgFilePath}></object>
</div>
);
};
export default SvgViewer;
我的SQL语句如下:
ORA-00907: missing right parenthesis
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 592
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1658
ORA-06512: at "SYS.WWV_DBMS_SQL_APEX_190200", line 578
ORA-06512: at "APEX_190200.WWV_FLOW_DYNAMIC_EXEC", line 2057
3. (
4. CustomerID INT(2)
5. ,CityID INT(2)
6. ,CustomerName VARCHAR2(20)
7. ,CONSTRAINT cu_pk PRIMARY KEY (CustomerID)
答案 0 :(得分:1)
Oracle与MySQL不同(没有数据类型INT(n)
):
CREATE TABLE Customer
(
CustomerID INT --remove (2) or change to NUMBER(2,0)
,CityID INT --(2)
,CustomerName VARCHAR2(20)
,CONSTRAINT cu_pk PRIMARY KEY (CustomerID)
);
11.1.6 Numeric Type Attributes
MySQL支持扩展,可以选择在整数类型的基本关键字后的括号中指定整数数据类型的显示宽度。
答案 1 :(得分:0)
INT
或INTEGER
只是NUMBER
数据类型的子类型。
INT/INTEGER
仅接受整数,即1,5,13等。
Oracle支持INT
作为 ANSI 标准。但是在oracle中,数字的主要数据类型是NUMBER
。
INT/INTEGER
可以表示如下:
NUMBER(*,0)
在这里,*表示允许的最大值。
根据oracle documentation,
INTEGER
是 (-2 ^ 31)到(2 ^ 31)-1。
您应将INT
用作数据类型,且不加任何精度。因此,在您的示例中,将(2)
之后的INT
删除,您就可以开始了。如果只需要两位数字,则使用NUMBER数据类型,如下所示:
NUMBER(2,0)
干杯!