2009-05-07 20 views
10

Trong trình chỉnh sửa nâng cao, màu có thể cung cấp cho bạn gợi ý. Tuy nhiên, trên máy tính lớn tôi không tin có gì, trong trình soạn thảo, điều đó sẽ giúp bạn.Trong SAS, kỹ thuật/tùy chọn tốt để bắt lỗi cú pháp là gì?

tôi sử dụng

OPTIONS OBS=0 noreplace; 

Các obs = tùy chọn 0 xác định rằng 0 observarions được đọc từ đầu vào bộ dữ liệu và NOREPLACE nói SAS không overwite một bộ dữ liệu SAS hiện với một trong những cùng tên . Nếu bạn đang tạo một datastet mới, nó sẽ được tạo ra với tất cả các thuộc tính, nhưng với 0 quan sát. (Hãy chắc chắn để thiết lập lại các tùy chọn, nếu cần thiết, để Tùy chọn Obs = max thay thế; khi không tìm thấy lỗi cú pháp).

Tôi muốn quan tâm đến bất kỳ kỹ thuật nào khác. Cảm ơn

Giải thích về các lựa chọn đến từ here.

Trả lời

16

tôi sử dụng tùy chọn hủy trên báo cáo kết quả chạy. Nó sẽ kiểm tra cú pháp của bước dữ liệu, sau đó chấm dứt nó mà không thực sự thực thi nó. Đó là bước dữ liệu tương tự với tùy chọn noexec trong proc sql.

data something; 
<stuff here> 
run cancel; 

Rất nhiều chi tiết hơn trong này SUGI pdf

+4

Mẹo hay. Tôi nhớ bây giờ nhận được một tip (từ một lớp học hoặc một bài báo) để sử dụng một var vĩ mô thay vì hủy bỏ. Sau đó, bạn có thể thay đổi macro var để trống khi bạn thực sự muốn chạy chương trình. Cảm ơn các liên kết. Đó là một bài báo hay. –

+0

Mẹo tuyệt vời! Cảm ơn! –

+0

Oh nice - Tôi đã sử dụng 'noexec' nhưng không biết có một datastep tương đương ... cảm ơn! –

-1

tôi viết tất cả các mã của tôi trên máy tính của tôi với SAS trên máy tính của tôi và nâng cao, mã hóa màu editor. Sau đó tôi sử dụng SAS/CONNECT để xử lý nó trên máy tính lớn. Nếu bộ dữ liệu nằm trên DASD, tôi sử dụng SAS/CONNECT và Enterprise Guide để chạy trực tiếp mã onthe mainframe (không có JCL!) Nếu có một băng dữ liệu có liên quan và do đó phải chạy theo đợt, tôi sử dụng SAS/CONNECT và SAS ftp engine để gửi mã tới hàng đợi của hàng loạt máy tính lớn. Tôi sử dụng công cụ email SAS để gửi lại cho tôi kết quả đầu ra và nhật ký của tôi. Tôi đặt và ODS sandwich aound mã của tôi để có máy tính lớn tạo ra một tài liệu WORD cho đầu ra. Tôi sử dụng bản tải xuống PROC để tải xuống đầu ra cho máy chủ của tôi để tôi có thể mở nó trong WORD.

+0

Thật tuyệt khi lưu ý rằng SAS/CONNECT và SAS Enterprise Guide được cấp phép riêng biệt với Base SAS, vì vậy giải pháp này sẽ không áp dụng cho những người dùng chưa cấp phép cho các sản phẩm đó. –

-1

Lời khuyên này là ngôn ngữ bất khả tri.

Tôi cho rằng một kỹ thuật thích hợp để bắt lỗi (và logic) là thực hiện đọc gần (hoặc kiểm tra) mã của bạn (cần nắm bắt phần lớn các lỗi cú pháp), tiếp theo là kiểm tra đơn vị trên bộ dữ liệu (sẽ bắt bất kỳ lỗi cú pháp còn lại nào, cũng như nhiều lỗi logic nếu các bài kiểm tra của bạn được thiết kế tốt).

Tôi đồng ý có một số giá trị để kiểm tra cú pháp cách ly, nhưng để đọc và hiểu mã của bạn đủ kỹ trước khi biên dịch đầu tiên để bạn biết nó sẽ biên dịch là một lý tưởng tốt để phấn đấu. Steve McConnell đề cập đến ý tưởng này trong Code Complete (xem trang 827 của 2nd Edition).

P.S. Bạn đã đề cập đến việc đánh dấu cú pháp trong bài đăng gốc của mình; có các trình soạn thảo khác (chẳng hạn như VIM) sẽ thực hiện đánh dấu cú pháp trên các tệp SAS.

Các vấn đề liên quan