我正在尝试将数据插入到为数据仓库创建的时间维度表中。我设法将数据输出到服务器但无法插入表中。 我提供了重现相同错误的部分代码。我尝试了多种方法,包括:
我附上了运行代码的截图,使用DBMS_OUTPUT.PUT_LINE成功将其打印到屏幕上。
Screenshot of successful Anonymous Block completed
以下代码会生成以下错误报告: ORA-06550:第15行,第17栏: PL / SQL:ORA-00913:值太多了 ORA-06550:第15行,第5栏: PL / SQL:忽略SQL语句
---以下脚本填充标准日历的时间维度表。 ---
DECLARE ---为时间维度表---
中的列声明游标Plotly.newPlot('myDiv', [{x:x, y:y, type:'bar'}],{title:'title',xaxis: {title: 'abscissa'},yaxis:{title:'ordinate'},bargap:0});
- 游标(c1)的Rowtype变量,用于在多列中插入值 -
public static ImageSource SetImageSource(string uriPath)//.com/image or some path
{
// this method very good for mvvm ;)
try
{
//In Model - public ImageSource AccountPhoto { get; set; }
//AccountPhoto = SetImageSource("some path");
return return new BitmapImage()
{
CreateOptions = BitmapCreateOptions.IgnoreImageCache,
UriSource = new Uri(uriPath)
};
}
catch
{
Debug.WriteLine("Bad uri, set default image.");
return return new BitmapImage()
{
CreateOptions = BitmapCreateOptions.IgnoreImageCache,
UriSource = new Uri("ms-appx:///Avatar/Account Icon.png")
};
}
}
BEGIN
---启动循环以插入多行 -
cursor c1 is SELECT
DAY_ID,DAY_TIME_SPAN,DAY_END_DATE AS r_time
FROM time_calendar_dim_2;
---将值插入时间维度表---
r_time c1%rowtype;
答案 0 :(得分:2)
据推测,这一行:
INSERT INTO time_calendar_dim_2 VALUES (SEQ_Time_Dim_IDSTART.nextval,r_time.DAY_ID,r_time.DAY_TIME_SPAN,r_time.DAY_END_DATE,r_time.WEEK_DAY_FULL,r_time.WEEK_DAY_SHORT,r_time.DAY_NUM_OF_WEEK,r_time.DAY_NUM_OF_MONTH,r_time.DAY_NUM_OF_YEAR,r_time.MONTH_ID,r_time.MONTH_TIME_SPAN,r_time.MONTH_END_DATE,r_time.MONTH_SHORT_DESC,r_time.MONTH_LONG_DESC,r_time.MONTH_SHORT,r_time.MONTH_LONG,r_time.MONTH_NUM_OF_YEAR,r_time.QUARTER_ID,r_time.QUARTER_TIME_SPAN,r_time.QUARTER_END_DATE,r_time.QUARTER_NUM_OF_YEAR,r_time.HALF_NUM_OF_YEAR,r_time.YEAR_ID,r_time.YEAR_TIME_SPAN,r_time.YEAR_END_DATE);
失败是因为您提供的值多于time_calendar_dim_2
列的值(如果没有time_calendar_dim_2的DDL语句,很难说。
此外,您应该始终在INSERT
语句中显式枚举目标列,而不是
INSERT INTO time_calendar_dim_2
VALUES (SEQ_Time_Dim_IDSTART.nextval, ...)
使用
INSERT INTO time_calendar_dim_2 (idstart, ..)
VALUES (SEQ_Time_Dim_IDSTART.nextval, ...)
否则,如果您的表中的列被添加或删除,或者(更糟糕的是)列排序不是您期望的,那么您会感到非常惊讶。